Async Http Handler

时间:2011-03-15 12:20:56

标签: asp.net asynchronous httphandler ihttpasynchandler

我有一个ASHX在SQLite上进行批量插入。此页面加载2秒+/-

使用Async Http Handler实现它是一个很好的做法,在我进行I / O工作时不能保存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,并像我一样用Action调用它。 如果可以在ProcessRequest中使用context.Response,或者这项工作应该在EndProcessRequest中完成

0 个答案:

没有答案