6
我一直在Visual Studio中使用併發可視化工具來了解我正在處理的WPF項目中的線程。應用程序不是多線程的,所有的多線程只是爲了避免阻塞UI線程。當我運行併發可視化工具時,我非常驚訝地看到大約50多個線程!爲了讓事情變得更加混亂,幾乎所有這些50多個線程都花費了他們整個時間的「同步」,據我瞭解,這個「同步」被「阻止」。併發可視化器 - 瞭解WPF/CLR線程
作爲一個實驗,我創建了一個新的空白WPF應用程序項目,並使用併發可視化工具運行它,再次令我驚訝的是,我期望擁有一個主線程的應用程序,可能還有一兩個垃圾收集或其他CLR的東西,原來有10個線程!
所以我的問題是:
- 爲什麼有一個非常簡單的應用如此多線程?
- 一般來說這些線程的功能是什麼?
- 他們爲什麼花費幾乎所有的時間「同步」?
- 涵蓋此主題的任何書籍/網站建議?