【发布时间】:2019-08-06 20:15:09
【问题描述】:
作为标题。假设我有一个函数:
async Task Foo()
{
// get Task obj that will be returned from this function
}
是否可以获得对该任务对象的引用?
我之所以对此感到好奇,是因为我希望能够跟踪一些任务。
【问题讨论】:
-
你能把这个逻辑移到一个新的
InnerFoo吗?然后使用来自Foo的InnerFooTask? -
我希望能够跟踪某些任务是什么意思?如果
Foo中的任务处于等待状态,则Foo返回的任务将在该任务完成之前完成。 -
你不能字面上这样做,因为编译器生成的代码直到最后才会真正产生任务——所以,在一个非常真实的意义上,有 is 方法内没有
Task对象。可能有许多替代方法可以实现您想要的,但这需要退后一步并详细说明您的实际情况。 -
@juharr:我不想在函数内等待任务,只需将其添加到拥有该函数但不是函数调用者的同一类内的列表中。但我现在要走另一条路:-)。感谢 cmets!
标签: c# async-await task