13
看看併發分析器,線程視圖看起來我的應用程序產生的遠遠超過我想象的線程數。其中大部分是「CLR工作線程」或「工作線程」。CLR Worker線程和Worker線程有什麼區別?
有什麼區別?在什麼情況下創建?
看看併發分析器,線程視圖看起來我的應用程序產生的遠遠超過我想象的線程數。其中大部分是「CLR工作線程」或「工作線程」。CLR Worker線程和Worker線程有什麼區別?
有什麼區別?在什麼情況下創建?
併發可視化是一個相當新的,但真的很酷!功能所以有一點(我相信至今)的信息,關於它,下面就是我在官方信息來源已經找到像MSDN:
相關鏈接創建的工作線程:
下不會對CLR創造什麼情況下線程?這些是由[ThreadPool](http://msdn.microsoft.com/en-us/library/system.threading.threadpool.aspx)創建的線程嗎? 給出你的答案,我也被神奇的工人主題數量弄糊塗了,我不明白我怎麼能創造這麼多。 – pomeroy
真的很難說沒有任何看你的應用程序代碼。 CLR可以爲應用程序線程創建用於垃圾收集的CLR工作程序,同樣這只是猜測,但假定應用程序使用線程池,那麼存在很好的文檔化行爲 - 「如果應用程序將線程池的任務排隊得比一個線程更快處理它,那麼線程池將創建額外的線程「,和」關於線程池的好處是它是啓發式的,如果你的應用程序需要執行很多任務,那麼線程池會創建更多的線程。 – sll
查看屏幕截圖,您只有一個活動的應用程序線程(主線程除外),它在時間線圖上爲紫色,表示它涉及I/O操作(您正在讀取文件/網絡流,io端口或類似內容),全部其他線程被阻止同步。我不知道爲什麼你有很多阻塞的工作線程,你是否在一些同步循環中創建線程? – sll