WinFormのマルチスレッドを開始する方法は何ですか?

WinFormアプリケーションでは、以下のようにしてマルチスレッド化を開始できます。

  1. ネイティブの日本語で文を言い換えると、
  2. ネイティブ日本語の言い回しで言い換えると、
  3. スレッド
  4. スレッド
  5. スレッド
  6. 本来なら
Thread thread = new Thread(DoWork);
thread.Start();
  1. スレッドプール
  2. スレッドプール
  3. スレッドプール.キューユーザーワークアイテム
ThreadPool.QueueUserWorkItem(DoWork);
  1. タスク
  2. ネイティブに日本語で言い換えてください。1つの選択肢のみが必要です。
  3. タスクの実行
  4. ネイティブスピーカーのように日本語に言い換えてください。オプションは1つで結構です。
Task.Run(() => DoWork());

UIコントロール操作はUIスレッド上で実行する必要があります。マルチスレッド時はUIコントロールへのアクセスが発生する可能性があるため、WinFormアプリケーションでは特に注意が必要です。UIスレッド上でUIコントロールへのアクセスを実行するにはControl.InvokeまたはControl.BeginInvokeメソッドを使用します。

void UpdateUI(string text)
{
    if (textBox1.InvokeRequired)
    {
        textBox1.Invoke(new Action<string>(UpdateUI), text);
    }
    else
    {
        textBox1.Text = text;
    }
}
bannerAds