-1

バックグラウンドワーカーを使用して時間のかかるプロセスを実行し、上記のプロセスの実行中に他のすべてのボタンを無効にしました。しかし、他のボタンを無効にしようとすると、クロススレッド例外が有効ではありませんというエラーが発生します。どうすればこれを解決できますか?

4

1 に答える 1

1

バックグラウンド ワーカーを開始する前に、ボタンを無効にします。

DisableButton(); // runs on UI thread
backgroundWorker.RunWorkerAsync();

次に、RunWorkerCompletedイベント ハンドラーを使用してボタンを有効にします。

void backgroundWorker_RunWorkerCompleted(object s, RunWorkerCompletedEventArgs e)
{
    EnableButtons(); // runs on UI thread
}
于 2013-02-19T11:45:24.750 に答える