0
如果使用async声明的异步方法具有返回类型的任务或任务<TResult>它可以等待。在该方法内部,在C#代码中不返回任务,但是在任务TResult >的情况下TResult的值。例如:任务表示由返回任务的异步方法返回的任务是什么?
private static async Task<int> AsyncDemo()
{
await Task.Delay(1000);
return 1;
}
生成的IL代码返回启动编译状态机的AsyncTaskMethodBuilder的任务。我的问题是这个任务实际代表什么。我认为这是一个代表不是线程的任务,而是状态机的执行。我还假设在状态机完成时完成任务,或者在发生异常时将任务设置为Faulted状态。我赞赏澄清。
谢谢斯蒂芬,那就是我的想法 – 2012-08-13 16:29:42