Ezi*_*nze 0 c# foreach task-parallel-library
我有这样的情绪:
foreach (var item in listBoxFileNames.SelectedItems)
{
MessageBox.Show("I am not waiting");
CancellationTokenSource tokenSourcve = new CancellationTokenSource();
CancellationToken token = tokenSourcve.Token;
Task task1 = new Task(() =>
{
ProcessDatas(); // method
}
, token);
task1.Start();
}
Run Code Online (Sandbox Code Playgroud)
我想让foreach等待任务的完成.不要等待.它会在每个messagBox之后立即显示MessageBox.
是的,您正在启动任务,然后在后台执行.如果您希望循环完全同步,则ProcessDatas()根本不要在任务中调用.你可以启动它然后等待它完成 - 但是不清楚会给你带来什么好处.
如果你想并行启动所有任务,然后等待它们,你可以创建一个List<Task>然后调用Task.WaitAll- 或者只是Parallel.ForEach用来开始.