gpt4 book ai didi

c# - 如何等待 Task.Run 完成

转载 作者:行者123 更新时间:2023-12-01 21:36:08 27 4
gpt4 key购买 nike

我有一个程序可以处理这样的事情

var t=Task.Run(()=>process());
while(!t.IsCompleted())
Task.Delay(1000);
Console.WriteLine(t.Result);

有没有其他方法让程序等待任务完成?

最佳答案

您在这里所做的是本质上“同步优于异步”。这里的错误 修复只是... t.Wait()而不是你的循环。但是,实际上,您应该尝试编写此代码 async ,并改用:

Console.WriteLine(await t);

请注意您的 Main C# 中的方法可以是 async static Task Main()如果需要的话。

但是!使用 Task.Run 确实没有什么意义在这里 - 这只是占用一个池线程,并阻塞当前线程等待它。您不会从 Task.Run 中获得任何 yield !

  • 如果process()是同步的:只需使用 Console.WriteLine(process())
  • 如果process()是异步的(返回 Task<T>/ValueTask<T>/etc):只需使用 Console.WriteLine(await process())

关于c# - 如何等待 Task.Run 完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61930973/

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