2

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

在我做 I/O 工作时,使用 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 并像我一样用 Action 调用它。如果可以在 ProcessRequest 中使用 context.Response,或者这项工作应该在 EndProcessRequest 中完成

4

0 回答 0