■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; } } }
|
|