2016-12-24 57 views
0

是否可以使用parallel_for創建任務?混合併發:: parallel_for和異步任務

concurrency::concurrent_vector<concurrency::task<void>> tasks; 
concurrency::parallel_for(0, length, [tasks](int i) { 
    tasks.push_back(Upload_Async(i)); 
}); 
concurrency::when_all(tasks.begin(), tasks.end()).wait(); 
+0

它是,但爲什麼?! –

+0

我簡化了代碼,parallel_for部分負責生成異步上傳部分的內容。 我想知道這種情況是否正確混合。我做了一些額外的測試,看起來很穩定。 –

回答

0

如果Upload_Async是真正異步的,那麼它只是啓動的任務並返回它,它不會做任何工作本身。這意味着在這裏使用parallel_for沒有任何意義,它不會加速你的代碼,它只會增加開銷。

+0

是的,我同意,在這種情況下,簡單的循環就可以。 我簡單介紹了parallel_for負責生成上傳內容的代碼示例。 我想可以並行和I/O任務異步 我已經與生產任務的上傳3嵌套parallel_for時測試它執行的高CPU的任務,它似乎運作良好,到目前爲止 –