2012-04-10 33 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. 
} 
関連する問題