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

0 ответов

Другие вопросы по тегам