[英]Foreach wait for task to complete
我有這樣的說法:
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();
}
我想讓foreach等待任務完成。 但它沒有等待。 它在每個messagBox之后立即向我顯示MessageBox。
是的,您正在啟動任務,然后該任務將在后台執行。 如果您希望循環完全同步地運行,則根本不調用Task中的ProcessDatas()
。 您可以啟動它,然后等待它完成-但是尚不清楚能給您帶來什么好處。
如果要並行啟動所有任務,然后再等待它們,則可以創建List<Task>
,然后調用Task.WaitAll
或僅使用Parallel.ForEach
開始。
一旦完成任務,您能否使布爾變為真,然后將其余的放入if(bool)循環中?
Afaik您可以只調用Task.Wait()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.