【发布时间】:2018-07-15 10:17:33
【问题描述】:
我正在学习 C# 中的异步编程。在this 文章中,我发现对于 IO-Bound 操作,您不应该使用 Task.Run() 但我不知道如何在没有 Task.Run() 的情况下创建任务......例如我想创建一个自定义名为 GetPageCountAsync 的方法,它查询数据库并返回结果。我已经有方法 GetPageCount 可以同步查询数据库。我不知道比以下更好的方法:
private async Task<int> GetPageCountAsync()
{
return await Task.Run(() => GetPageCount());
}
如何在没有 Task.Run 的情况下执行此操作?我找到了 SqlCommand 类的 ExecuteReaderAsync 方法,但我想知道这个方法是如何实现的?没有Task.Run?如果有,怎么做?
【问题讨论】:
-
你可以在这里查看SqlCommands的ExecuteAsync方法是如何实现的:referencesource.microsoft.com/#System.Data/System/Data/…
标签: c# asynchronous io async-await cpu