併發垃圾收集是否也掛起應用程序中的所有線程而不是正在運行的應用程序?併發垃圾收集的好處是什麼?
讓我們考慮一個帶有用戶界面的桌面應用程序。如果一個併發集合也會暫停所有線程,那麼併發集合並沒有意義,對吧?併發垃圾收集有什麼好處?
此外,the MSDN states 2的矛盾:
一個。爲單線程GUI應用程序啓用併發收集是很好的,例如桌面應用程序;和
b。併發垃圾收集會導致性能下降。
所以,我的下一個問題是:
爲什麼會併發收集會導致性能下降?最後,
我該怎麼辦,如果我想從垃圾收集我的桌面應用程序通知註冊?根據上面鏈接的MSDN頁面,建議爲UI應用程序使用併發集合(默認)。但MSDN也表示notifications are not supported for concurrent collections;它們僅支持阻止集合。
謝謝 「三色不變」,我所產生的所有困惑都源於我做出的一個錯誤假設:所有垃圾收集(包括併發垃圾收集)都暫停所有線程。當它被清除後,回答所有其他問題,你的答案也是如此。 –