相关疑难解决方法(0)

isync/await是否适合IO和CPU绑定的方法?

MSDN文档看起来指出asyncawait适合于IO密集型任务,而Task.Run应该用于CPU密集型任务.

我正在处理一个执行HTTP请求以检索HTML文档的应用程序,然后解析它.我有一个看起来像这样的方法:

public async Task<HtmlDocument> LoadPage(Uri address)
{
    using (var httpResponse = await new HttpClient().GetAsync(address)) //IO-bound
    using (var responseContent = httpResponse.Content)
    using (var contentStream = await responseContent.ReadAsStreamAsync())
        return await Task.Run(() => LoadHtmlDocument(contentStream)); //CPU-bound
}
Run Code Online (Sandbox Code Playgroud)

这是好的和适当的使用asyncawait,或者我是否过度使用它?

c# asynchronous async-await c#-5.0

40
推荐指数
3
解决办法
1万
查看次数

标签 统计

async-await ×1

asynchronous ×1

c# ×1

c#-5.0 ×1