我有一個樹數據結構,其中每個兄弟姐妹都可以并行處理。目前我創建了一個單獨的任務來處理每個孩子。這是天真嗎,一旦樹具有給定的大小/深度,它會損害性能嗎?還是 CLR 旨在處理任意負載的任務,因為它們沒有綁定到特定的操作系統線程?!
1 回答

慕的地10843
TA貢獻1785條經驗 獲得超8個贊
這個問題的重要答案是肯定的。但是為了完全理解它,您必須更深入地研究任務,看看您的任務是長期運行的任務還是短期運行的任務。
第二個鏈接包含您問題的答案,但為您總結一下:
默認情況下,任務是短期運行的。這是什么意思:
任務將在線程池中創建。如果您的任務將執行會消耗大量時間的工作,這意味著長時間運行- 您應該避免在線程池中創建任務,因為它會用越來越多的任務填充您的線程池并最終會溢出,讓我們調用它,線程池。
長時間運行意味著任務將在線程池之外的單個線程上創建,它可以使用TaskCreationOptions Enumeration定義:
TaskCreationOptions.LongRunning
- 1 回答
- 0 關注
- 155 瀏覽
添加回答
舉報
0/150
提交
取消