是否有可能在Compact Framework應用程序中阻止垃圾回收器無條件停止至少一個線程,或至少在代碼的某些部分阻止GC收集?我可以阻止垃圾回收器停止某些線程嗎?
我認爲它必須處理設置實時優先級,但我發現很多建議不這樣做。
是否有可能在Compact Framework應用程序中阻止垃圾回收器無條件停止至少一個線程,或至少在代碼的某些部分阻止GC收集?我可以阻止垃圾回收器停止某些線程嗎?
我認爲它必須處理設置實時優先級,但我發現很多建議不這樣做。
GC需要凍結所有線程才能檢查所有對象。如果某個線程正在運行並正在修改/創建一個對象,它如何完成工作?
最好不要這樣做。
您可以執行的操作是在您不希望中斷的狀態下調用GC.Collect()和GC.WaitForPendingFinalizers()。這會給你一些時間。
非託管代碼不允許訪問未固定的託管對象,但它在垃圾回收期間將不會阻塞地運行。如果你有某些例程必須在垃圾收集期間保持運行,並且它們不需要訪問未固定的託管對象,那麼可以將這些例程寫入非託管代碼,並且GC不會影響它們。