C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 59 を表示中)
■33975 / )  BackGroundWorkerでビジー
□投稿者/ hirosi (3回)-(2009/03/15(Sun) 12:57:32)

分類:[C#] 

お世話になります。

WindowsVista HomeEdition / C#2008 ExpressEdition

BackGroundWorkerを使用して、バックグラウンドで処理をしています。
その処理は頻繁に呼ばれ、まだ実行中の時は終了させて、再度処理を実行したいと考えています。

ところが、スレッドを終了させてから再実行しているのにもかかわらず

----------------------------------------------------------------------------------------------
System.InvalidOperationException が発生しました。
Message="BackgroundWorker は現在ビジー状態であるため、複数のタスクを同時に実行できません。"
----------------------------------------------------------------------------------------------

となっています。

上記のエラーを回避する方法をご存知の方は教えていただけないでしょうか。

実際のソースコードは以下の通りです。

public void 別スレッドの処理() {
if(_BackGroundWorker.IsBusy)
{
_BackGroundWorker.CancelAsync();
}
_BackGroundWorker.RunWorkerAsync(パラメータ);
}
private void _BackGroundWorker_DoWork(object sender, DoWorkEventArgs e) {
for(・・・・・・・・)
{
if(_BackGroundWorker.CancellationPending)
{
e.Cancel = true;
return;
}
}
}

返信 編集キー/


管理者用

- Child Tree -