BackgroundWorker.IsBusy не 100% надежно? - PullRequest
1 голос
/ 05 марта 2012

Иногда я получаю исключение, что мой 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);
    }
 }
...