c# - 如何使用 Task.Run(Func<Task> f) 方法签名?

标签 c#

使用此方法:

public static Task Run(Action action)

我只是写:

void MyMethod(){ //do something }
Task t = Task.Run(new Action(MyMethod));

但是我不明白如何使用下面的重载

public static Task Run(Func<Task> f)

msdn 提到返回的任务是“任务的代理 由 f 返回”,这让我更加困惑。代理是什么意思,我将如何调用此方法?

最佳答案

Func<Task>只是一个返回任务的函数。 那个 任务然后被执行。

所以 Task Run( Func<Task> f )返回 Task ,他的工作是运行另一个 Task (由 f 创建的)。 这就是“代理”的含义。

但是,请阅读 MSDN 上的注释(强调):

The Run<TResult>(Func<Task<TResult>>) method is used by language compilers to support the async and await keywords. It is not intended to be called directly from user code.

关于c# - 如何使用 Task.Run(Func<Task> f) 方法签名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30400089/

相关文章:

c# - 如何从 Entity Framework 4.3 代码优先模型生成 DDL 脚本?

c# - Entity Framework 时间跨度 - 时间错误

c# - 您如何按照从最少到最多非零元素的顺序遍历排列?

c# - 错误无法评估表达式,因为代码已优化

c# - 如何从单个解决方案生成多个 .exe 文件?

c# - 如何将 SignalR 与 Angular 7 应用程序连接起来

c# - 写入文件 C# 时使用错误的编码

c# - 如何在 C# 中的特定标签处创建工具提示点?

c# - 如何保护在 SignalR 中监听的事件?

c# - IWshShortcut 目标路径在目标文件名中不带两个点