使用此方法:
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 theasync
andawait
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/