【发布时间】:2017-05-20 13:30:02
【问题描述】:
我一直在寻找一种方法来遍历具有多个线程的 foreach,例如,假设我有一个列表
public List<MYclass> All()
{
// fill the list
}
Private async Task Main()
{
foreach(All() as whatever)
{
await method();
await method2();
}
}
private async Task method()
{
//do some stuff
// more stuff
await another();
}
private async Task method2()
{
//do some stuff
// more stuff
await another2();
}
private async Task another()
{
//await client to do whatever
}
private async Task another2()
{
//await client to do whatever
}
我正在尝试执行以下操作:
列表项 1 = thread1
列表项 2 = thread2
列表项 3 = thread3
...等取决于我有多少线程
我一直在四处寻找,没有希望,我找到了 Parrellel.foreach,但这不会等待等待,因为一旦它到达等待,它就会完成整个动作然后再次启动 foreach,所以我怎么能去实现我想要的?任何帮助将不胜感激。
【问题讨论】:
-
在所有方法都完成工作后,您要继续处理
All中的下一项吗? -
而不是
await method();,为什么不tasks.Add(method());等然后调用await Task.WhenAll(tasks);?
标签: c#