2012-04-10 83 views
1

在C#中進行異步調用後,我希望能夠測試超時,所以我不會無限期地等待答案。這裏是我的代碼:C#超時異步調用

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

是有EndInvoke辦法等待時間(超時),數量有限?

如果沒有,是否有其他方法?

回答

2

您可以嘗試以下操作;

if(RemAr.AsyncWaitHandle.WaitOne(1000)) // timeout value 
{ 
    Console.WriteLine(RemoteDel.EndInvoke(RemAr)); 
} 
else 
{ 
    //throw exception etc. 
}