gpt4 book ai didi

.net - 如何启动一个接受参数并返回值的任务?

转载 作者:行者123 更新时间:2023-12-03 03:28:15 25 4
gpt4 key购买 nike

我正在尝试在 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 个参数。

任何有关如何从任务中实现这两件事(传递参数和检索值)的帮助都会很棒!

最佳答案

Task 的输入(状态)参数只能是 object 类型,所以它实际上不是类型安全的。

Task<T> 上的泛型类型参数是 Task 的返回类型.

最好的选择是使用闭包:

int i = 3;
Task<int> task1 = Task.Factory.StartNew( () => 2 * i );

关于.net - 如何启动一个接受参数并返回值的任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10920174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com