我有一個網站刮板,用分頁結果來刮擦網站。WaitAll阻止UI
對於每一頁我嘗試運行一個任務,使其更快,但凍結。
var pageCount = getPageCount(txtSearchQuery.Text);
var tasks = new Task[pageCount];
var link = txtSearchQuery.Text;
for (var i = 1; i <= pageCount; i++)
{
tasks[i-1] = new Task(new Action(() => { Scrape(link, i); }));
tasks[i-1].Start();
}
Task.WaitAll(tasks);
MessageBox.Show("Complete");
我做錯了什麼?
'WaitAll'是一個阻塞操作。這些任務可以並行運行,但只要最長時間運行的任務完成,「WaitAll」將會被阻塞。 –
*我做錯了什麼?*您正等待*完成所有任務。阻止當前(UI)線程。 –
你有一個WPF應用程序,你爲什麼不使用'async' /'await'? – kai