-2

重複の可能性:
C# の「クロススレッド操作エラー」に必要なヘルプ
WinForms でクロススレッド例外を解決する

foreach-loop にプログレスバーを追加しようとしました

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
    foreach (...)
    {
        ...
        i++;
        backgroundWorker1.ReportProgress(100 * i / rcount);
        Thread.Sleep(100);
    }
    this.close();
}

今、私は不正なクロススレッド操作エラーを抱えてい this.close(); ます

どうすれば解決できますか?

4

1 に答える 1

2

UI スレッドで次のコマンドを実行します。

C#で別のスレッドからGUIを更新するには?

this.Invoke((MethodInvoker)delegate {
    this.close();
});
于 2012-09-02T18:20:13.863 に答える