トップ  >  サンプルソース  >  BackgroundWorkerスレッド(C#/VB.NET)

BackgroundWorkerスレッド(C#/VB.NET)

2011年09月13日

BackgroundWorkerによるスレッドのサンプル(ソース/コード)です。

System.Threading.Threadによるスレッドのサンプルはこちらです。
スレッド制御(C#/VB.NET)

' ----------------------------------------------------------
' BackgroundWorkerによるスレッドのサンプル(VB.NET/VS2005)
' BackgroundWorkerをフォームに追加しています
' ----------------------------------------------------------
Private Sub BackgroundWorker1_DoWork( _
    ByVal sender As System.Object, _
    ByVal e As System.ComponentModel.DoWorkEventArgs) _
    Handles BackgroundWorker1.DoWork

    For i As Integer = 0 To 100
        If sender.CancellationPending Then
            ' 中止ボタンが押されたら終了
            Debug.WriteLine(DateTime.Now + ":中止")
            e.Cancel = True
            Return
        End If
        Debug.WriteLine(DateTime.Now & ":" & e.Argument)
        System.Threading.Thread.Sleep(1000)
    Next
End Sub

Private Sub Button1_Click( _
    ByVal sender As System.Object, _
    ByVal e As System.EventArgs) _
    Handles Button1.Click

    ' スレッド実行
    BackgroundWorker1.WorkerSupportsCancellation = True
    BackgroundWorker1.RunWorkerAsync(1234)
End Sub

Private Sub Button2_Click( _
    ByVal sender As System.Object, _
    ByVal e As System.EventArgs) _
    Handles Button2.Click

    ' スレッド中止
    BackgroundWorker1.CancelAsync()
End Sub
' ----------------------------------------------------------

// ---------------------------------------------------------
// BackgroundWorkerによるスレッドのサンプル(C#.NET/VS2005)
// BackgroundWorkerをフォームに追加しています
// ---------------------------------------------------------
private void backgroundWorker1_DoWork(
    object sender, DoWorkEventArgs e)
{
    for (int i = 0; i <= 100; i++)
    {
        if (((BackgroundWorker)sender).CancellationPending)
        {
            // 中止ボタンが押されたら終了
            Debug.WriteLine(DateTime.Now + ":中止");
            e.Cancel = true;
            return;
        }
        Debug.WriteLine(DateTime.Now + ":" + e.Argument);
        System.Threading.Thread.Sleep(1000);
    }
}

private void button1_Click(
    object sender, EventArgs e)
{
    // スレッド実行
    backgroundWorker1.WorkerSupportsCancellation = true;
    backgroundWorker1.RunWorkerAsync(1234);
}

private void button2_Click(
    object sender, EventArgs e)
{
    // スレッド中止
    backgroundWorker1.CancelAsync();
}
// ---------------------------------------------------------
スポンサーサイト

Bitmapバイナリ変換(C#/VB.NET) | トップページへ戻る | UDP/IP 非同期受信(C#/VB.NET)

このページのトップに戻る

コメント

名前
題名
メールアドレス
WEBサイト
 
コメント
パスワード
  管理者にだけ表示を許可する

このページのトップに戻る

トラックバック

このページのトップに戻る