Async Http Handler
У меня есть ASHX, который делает массовую вставку в SQLite. Эта страница загружается в течение 2 секунд +/-
Хорошая практика - использовать Async Http Handler, чтобы не держать поток ASP.NET, пока я работаю с вводом / выводом.
Чтобы превратить мой IHttpHandler в IHttpAsyncHandler, я только что сделал это, правильно?
-Измененный интерфейс, который я реализую в ASHX для IHttpAsyncHandler
-Добавьте эту переменную и конструктор:
readonly Action<HttpContext> process;
public ClassConstructor()
{
process = ProcessRequest;
}
Реализовано 2 метода IHttpAsyncHandler:
public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, object extraData)
{
return process.BeginInvoke(context, cb, extraData);
}
public void EndProcessRequest(IAsyncResult result)
{
process.EndInvoke(result);
}
Мое главное сомнение в том, должен ли я сохранить оригинальный ProcessRequest и просто вызвать его с действием, как я сделал. И если можно использовать context.Response внутри ProcessRequest, или эту работу следует выполнить в EndProcessRequest