我一直在开发一个应用程序,我需要以并行而不是阻塞的方式运行一些方法。首先我使用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
提交
取消