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
。
- 如何实现异步。 在.NET中完成外部使用事件?
- System.Web.Script.Serialization.JavaScriptSerializer或System.Runtime.Serialization.Json.DataContractJsonSerializer?
- Observable.Timer():如何避免定时器漂移?
- new FileInfo(path).Name与Path.GetFileName(path)
- 使用命令行构建VS安装项目时为什么没有输出?
- 如何使用c#2.0驱动程序将数据插入mongodb集合?
- 在运行时编译代码,加载到当前appdomain但Type.GetType无法看到它
- 使用C#删除图像中的透明度
- dcomcnfg以编程方式运行