HIRO's.NET

VB.NET, C#, PowerShell Tipsサイト

 VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。

 基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。

HIRO's.NET RSSHIRO's.NET RSS


C# 2005の開発でお困りのことはありませんか?
そんな悩みは当サイトで解決!!

HOME > C# 2005 Tips > コントロール > BackGroundWorker Tips メニュー

05.バックグラウンド操作にパラメータを渡す

UPDATE:2007/03/15 

<< 前のTips  次のTips >>

 

 バックグラウンド操作にパラメータを渡すには、RunWorkerAsyncメソッドの引数で値を指定します。この値はDoWorkイベントの引数e.Argumentで取得することができます。

 サンプルではRunWorkerAsyncメソッドで整数値100を渡し、受け取った値をforのループ数として使用しています。

 
サンプル
private void Form1_Load(object sender, EventArgs e)
{
    //進捗状況を報告できるようにする
    this.backgroundWorker1.WorkerReportsProgress = true;
    //バックグラウンド操作をキャンセルできるようにする
    this.backgroundWorker1.WorkerSupportsCancellation = true;
    //プログレスバーの初期化
    this.progressBar1.Minimum = 0;
    this.progressBar1.Maximum = 100;
}

//バックグランド処理実行用ボタンクリック時の処理
private void button1_Click(object sender, EventArgs e)
{
    //進捗状況の初期化
    this.progressBar1.Value = 0;

    //バックグラウンド操作の実行を開始する
    this.backgroundWorker1.RunWorkerAsync(100);
}

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
    //バックグラウンドで実行する処理をここに記述します

    for (int i = 0; i < (int)e.Argument; i++)
    {
        //処理中にキャンセルされていないかを定期的にチェックする
        if (this.backgroundWorker1.CancellationPending)
        {
            e.Cancel = true;
            return;
        }

        //進捗状況の報告
        this.backgroundWorker1.ReportProgress(i);

        System.Threading.Thread.Sleep(100);
    }
}
 

<< 前のTips  次のTips >>