我使用控制台应用程序作为概念证明和获取异步返回值的新需求。
我发现我需要使用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 来说很好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)