以下のコードでは、doitを呼び出すHttpTaskAsyncHandlerがあり、最初に5秒遅れてブラウザに文字列を書き出します。HttpTaskAsyncHandler - ブロックするようですが、何かが間違っていることを知っています
2つのブラウザタブを開いて、このページを両方とも呼び出すとします。最初の応答は5秒で、2番目の応答は10秒になります。
最初に2番目の要求が完了するのを待つのはなぜですか?遅れは、仕事をするのにかかる時間を表すことに過ぎませんでした。
public class MyHandler : HttpTaskAsyncHandler
{
public override bool IsReusable
{
get
{
return true;
}
}
public override Task ProcessRequestAsync(HttpContext p_ctx)
{
return doit(p_ctx);
}
static int _count = 0;
async Task doit(HttpContext p_ctx)
{
await Task.Delay(5000);
p_ctx.Response.Write("doit " + (++_count).ToString());
}
}
ありがとうございました。私はこれを考慮しなかった。あなたが言及したような別のブラウザやシークレットでテストしたはずです。それは確かに問題でした。 – gkelly
助けになるのはうれしい!答えがあなたを助けたならば、upvote/acceptは答えです。 – Kenneth
はアップヴォートが好きですが、私は新しいユーザーです。明らかに私の意見はまだ数えられません。 – gkelly