异步调用同时导致错误

时间:2015-09-14 02:59:00

标签: c# asp.net asynchronous

我有一个函数,它是一个发送电子邮件的异步调用,如果函数在我收到错误的同时被调用,会发生什么:

  

控件当前正忙

如何才能收到此错误并进行第二次工作?延迟会有效吗?

public static void MyEatTaskAsync(DataRowCollection rows)
{
    MyTaskWorkerDelegate worker = new MyTaskWorkerDelegate(EmailAutomationTask.setEmailAndSend);
    AsyncCallback completedCallback = new AsyncCallback(AsyncMethods.MyTaskCompletedCallback);

    lock (AsyncMethods._sync)
    {
        if (AsyncMethods._myTaskIsRunning)
            throw new InvalidOperationException("The control is currently busy.");

        worker.BeginInvoke(rows, completedCallback, null);
        AsyncMethods._myTaskIsRunning = true;
    }
}    

0 个答案:

没有答案