gpt4 book ai didi

c# - ContinueWith 和任务的结果

转载 作者:IT王子 更新时间:2023-10-29 04:46:34 25 4
gpt4 key购买 nike

我用这个代码

    public static void Main()
{
Task<int> t = new Task<int>(() => { return 43; });
t.Start();
t.ContinueWith((i) => {return i.Result * 2; });

Console.WriteLine("i = {0}", t.Result.ToString());

Console.Read();
}

我注意到 t.Result 等于 43 而不是 86。如果我在 ContinueWith 中打印某些内容,它会出现在控制台中。为什么Result没有被ContinueWith修改?

最佳答案

那是因为ContinueWith创建全新的任务,您忽略它的结果,而是打印第一个任务的结果,这是正确的 43。尝试以下代码段:

Task<int> t = new Task<int>(() => { return 43; });
t.Start();
var t2 = t.ContinueWith((i) => {return i.Result * 2; });

Console.WriteLine("i = {0}", t2.Result.ToString());

关于c# - ContinueWith 和任务的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22797340/

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