Threading.Tasks.Task’不包含’Result’的定义

所以我正在尝试学习如何用Task编程,我正在做练习:

public static int ReturnFirstResult(Func[] funcs) { Task[] tasks = new Task[funcs.Length]; for (int i = 0; i < funcs.Length; i++) { tasks[i] = CreatingTask(funcs[i]); } return Task.Factory.ContinueWhenAny(tasks, (firstTask) => { Console.WriteLine(firstTask.Result); return ***????***; }).***Result***; } private static Task CreatingTask(Func func) { return Task.Factory.StartNew(() => { return func.Invoke(); }); } 

我正在给一个Funcs数组运行,ideia是返回第一个完成的func的结果。 问题是字段结果不可用…

我在这里失踪了什么?

您正在从CreatingTask方法返回Task – 您需要返回Task ,然后将tasks更改为Task[]而不是Task[]

基本上, Task表示不产生结果的Task – 而Task表示产生类型T结果的任务。 在您的情况下,代码中的所有内容都返回int ,因此您需要在任何地方使用Task