1

在 C# 中进行异步调用后,我希望能够测试超时,因此我不会无限期地等待答案。这是我的代码:

RemoteAsyncDelegate RemoteDel = new RemoteAsyncDelegate(obj.MethodHello);
// Call delegate to remote method
IAsyncResult RemAr = RemoteDel.BeginInvoke(null, null);
Console.WriteLine(RemoteDel.EndInvoke(RemAr));

有没有办法EndInvoke等待有限的时间(超时)?

如果没有,是否有替代方法?

4

1 回答 1

2

您可以尝试以下方法;

if(RemAr.AsyncWaitHandle.WaitOne(1000)) // timeout value
{
   Console.WriteLine(RemoteDel.EndInvoke(RemAr));
}
else
{
   //throw exception etc.
}
于 2012-04-10T10:44:13.467 回答