在C#中进行异步调用之后,我希望能够测试超时,这样我就不会无限期地等待答案。这是我的代码:
RemoteAsyncDelegate RemoteDel = new RemoteAsyncDelegate(obj.MethodHello);
// Call delegate to remote method
IAsyncResult RemAr = RemoteDel.BeginInvoke(null, null);
Console.WriteLine(RemoteDel.EndInvoke(RemAr));
EndInvoke
是否有办法等待有限的时间(超时)?
如果没有,还有另一种方法吗?
答案 0 :(得分:2)
您可以尝试以下操作;
if(RemAr.AsyncWaitHandle.WaitOne(1000)) // timeout value
{
Console.WriteLine(RemoteDel.EndInvoke(RemAr));
}
else
{
//throw exception etc.
}