【发布时间】:2012-06-06 18:41:42
【问题描述】:
我正在尝试在 C# 中启动一个既接受参数又返回值的任务,但我似乎无法正确使用语法。
这是我得到的最接近的结果:这是一个预期返回 int 的任务。我是我的 lambda,我也展示了它采用单个参数,o:
Task<int> task1 = Task.Factory.StartNew<int>((o) => { return 2 ; }, 3);
Console.WriteLine(task1.Result); // prints 2
上面的行有效(它返回一个硬编码的值 2,但你可以看到它对参数 o 没有做任何事情,使其无用。如果我对参数 o 做一些事情,像这样:
Task<int> task1 = Task.Factory.StartNew<int>((o) => { return (2 * o) ; }, 3);
我收到一条语法消息,说明 Delegate 'System.Func' 不接受 1 个参数。
任何关于如何从任务中实现这两件事(传递参数和检索值)的帮助都会很棒!
【问题讨论】:
标签: .net c#-4.0 task-parallel-library