2

一位同事向我展示了一些他们在 ASP.NET Web Api 中处理上传文件的代码。是这样的:

    Task<IEnumerable<HttpContent>> task = Request.Content.ReadAsMultipartAsync(provider);

    return task.ContinueWith<HttpResponseMessage>(contents =>
    {
        //Do stuff...
    }

异步读取文件有什么好处?

4

3 回答 3

4

从网络套接字读取文件是一个 I/O 绑定操作。异步执行此操作可确保您在读取期间不会危及服务器上的工作线程,但您正在利用 I/O 完成端口。

于 2012-09-21T20:49:40.960 回答
3

这完全是关于使用异步释放处理请求的线程。一旦你这样做了,线程将能够服务另一个请求。

也最好不要使用ContinueWith,我在解释​​什么。

于 2012-09-21T15:13:32.840 回答
1

同步 IO 需要时间并挂起您的代码,即使它不在磁盘上(与网络相反)。切换到异步 IO 通过让框架处理您的 IO 请求而不阻塞您的客户端代码来缓解这种情况。

于 2012-09-21T00:46:25.600 回答