BackgroundWorker.IsBusy不是100%可靠吗?

时间:2012-03-05 14:24:55

标签: c# .net multithreading backgroundworker

我有时会得到一个异常,即我的BackgroundWorker在使用IsBusy方法检查它的状态后已经在运行。

代码:

if(!_worker.IsBusy)
    _worker.RunWorkerAsync(stateObj); //<-- exception is thrown here

我不会从其他任何地方打电话给工人,所以我很难理解如何处理这个问题。我应该忽略它吗?或者让它自己调用?

(例如)

void CallWorker(object stateObj)
{
    try
    {
        if(!_worker.IsBusy)
            _worker.RunWorkerAsync(stateObj);
    }
    catch (Exception e) 
    {
        //ignore OR
        //CallWorker(stateObj);
    }
 }

0 个答案:

没有答案