sawawra_bunkakai @ ウィキ

ドラッグ&ドロップで別スレッド : BackgroundWorkerクラス (1)

  • BackgroundWorkerクラスを使えば、コードを書かずに別スレッドを立てられる。
  • マルチスレッド処理を組み込みたいWindowsフォームやコントロールに、ツールボックスにある「BackgroundWorker」をドロップすれば、別スレッドオブジェクトの出来上がり。


  • ドロップしたBackgroundWorkerの名前.RunWorkerAsync()のコールだけで、ワーカスレッドが開始される。
  • RunWorkerAsync()のコールで開始される処理内容は、DoWorkプロパティにメソッド名を入れればよい。(別スレッドでbw_DoWork()メソッドを起動させたいときは、以下の図のようにすればよい)



// 「開始」ボタン
    private void button1_Click(object sender, EventArgs e)
    {
        // ★☆ BackgroundWorkerで実装している別スレッドの開始。
        bw.RunWorkerAsync();
    }
 
    // ★☆ 別スレッドで動作してほしい処理を記述する。
    // ★☆ 事前に"bw_DoWork"というメソッド名をプロパティウィンドウで指定する必要する必要あり。
    private void bw_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
    {
        for (loop = 0; loop < 3; loop++)
        {
            MessageBox.Show("別スレッドだがや");
            Thread.Sleep(1000);
        }
    }
…