我正在尝试在 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 个参数。
关于如何从任务中实现这两件事(传递参数和检索值)的任何帮助都会很棒!