我正在使用控制台应用程序作为概念证明,并且需要获得异步返回值。
我发现我需要Task.WaitAll()
在main方法中使用它,以避免需要一个异步的“ main()”方法,这是非法的。
现在,我陷入了试图找出允许我使用泛型或仅返回我可以强制转换的对象的重载的问题,但是在Main()中。
您不会从获得返回值Task.WaitAll
。您仅使用它来等待多个任务的完成,然后从任务本身获取返回值。
var task1 = GetAsync(1);
var task2 = GetAsync(2);
Task.WaitAll(task1, task2);
var result1 = task1.Result;
var result2 = task2.Result;
如果只有一个Task
,则使用Result
属性。如果任务尚未完成,它将返回您的值并阻塞调用线程:
var task = GetAsync(3);
var result = task.Result;
同步等待(阻止)异步任务(“异步同步”)通常不是一个好主意,但是我想这对POC来说是很好的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句