У меня есть 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