HttpWebRequest を非同期的に使用して、Web リソースに対して複数の同時要求を行うアプリケーションがあります。HttpWebRequest インスタンスのタイムアウト プロパティを 5 秒に設定しましたが、BeginGetRequestStream を非同期で呼び出すと、ストリームの取得にそれよりもはるかに長い時間がかかり、混乱を招くことがあります。ストリームを要求するために使用できる時間を制限する方法はありますか? また、ストリームを取得し、実際に BeginGetResponse を呼び出さずにリクエストを完全に放棄したいと判断した場合、その一連のアクションに影響はありますか?
1 に答える
0
あなたはこれを使うことができます
ManualResetEvent allDone = new ManualResetEvent(false);
bool isRequestFnishedInCorrectTime=allDone.WaitOne(5000);
if(isRequestFnishedInCorrectTime==false)
request.Abort();
else
//request success
ここで重要な点は、応答を取得した後、これを設定する必要があることです。
allDone.Set();
リクエストが 5 秒以内に終了できない場合、リクエストは中止されます。
于 2015-11-19T15:47:13.277 に答える