为了账号安全,请及时绑定邮箱和手机立即绑定

Task.Run 不像 Thread.start 那样工作

Task.Run 不像 Thread.start 那样工作

C#
萧十郎 2021-10-09 14:13:10
我一直在开发一个应用程序,我需要以并行而不是阻塞的方式运行一些方法。首先我使用Task.Run,但在调试模式下,我看到操作阻塞并等待结果。我不想要这个,我想要在foreach 循环中调用的所有方法异步运行。public async void f(){    foreach (var item in childrenANDparents)    {        await Task.Run(() => SendUpdatedSiteInfo(item.Host,site_fr));        // foreach loop does not work until the task return and continues    }}所以我将 task.run 更改为 thread.start并且效果很好!public async void f(){    foreach (var item in childrenANDparents)    {        Thread t = new Thread(() => SendUpdatedSiteInfo(item.Host, site_fr));        t.Start();        // foreach loop  works regardless of the method, in debug mode it shows me         // they are working in parallel    }}你能解释一下有什么区别吗?为什么?我期望两个代码的行为相同,而且它们似乎不同。
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 253 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信