我有一个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中完成