Async Http Handler - PullRequest
       30

Async Http Handler

2 голосов
/ 15 марта 2011

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

...