В приведенном ниже коде есть HttpTaskAsyncHandler, который вызывает doit, который сначала задерживает 5 секунд и записывает строку в браузер.HttpTaskAsyncHandler - кажется, блокируется, но я знаю, что что-то не так
Если у меня есть две вкладки браузера, открывайте их и вызывайте эту страницу на обоих. Первый отвечает за 5 секунд, а второй в 10.
Почему второй запрос ожидает завершения первого? Задержка заключалась только в том, чтобы представить время, затраченное на выполнение работы.
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());
}
}
Спасибо. Я даже не подумал об этом. Я должен был протестировать его в отдельном браузере, как вы упомянули, или в Incognito. Это действительно было проблемой. – gkelly
Рад помочь! Если ответ помог вам, пожалуйста, поддержите/принять ответ. – Kenneth
любил бы повышать, но я новый пользователь. видимо, мое мнение еще не подсчитано. – gkelly