我在这里有C#代码:
dlgCardLimit dlg = new dlgCardLimit(GetCardLimit);
IAsyncResult res = dlg.BeginInvoke(cardNo, null, null);
res.AsyncWaitHandle.WaitOne(timeOut);
if (res.IsCompleted)
{
cardLimit = dlg.EndInvoke(res);
}
else
{
//Terminate the async thread.
}
在“Else”案例中,如何终止 IAsyncResult 指向的线程?
答案 0 :(得分:2)
您的dlgCardLimit
类应该有另一种允许正常取消挂起操作的方法,例如取消或关闭,以便有机会正常处理错误。正在运行它的线程对您是隐藏的。
在取消待处理操作时,检查Socket.EndReceive
是否有类似的模式。