我有一個非託管類正在爲子Win32窗口運行消息循環。當程序關閉時,它啓動託管類的終結器,該託管類包含對此類的非託管引用。由於另一個線程依賴於此類,因此我需要終結器等待消息循環線程完成一個循環並退出並終止。但是,對於GC終結器線程來說,超時循環顯然需要太長時間,否則主線程會終止銷燬整個進程。 有沒有辦法告訴GC不要超時終結器的線程? I.E. - 我需要終結器線程在終結器中阻塞一會兒,這樣它可以完成
class Example {
@Override
protected void finalize() {
System.out.println("Object getting garbage collected");
}
}
public class GarbageCollectionDemo {
public static void
我看到我維護的一些代碼存在問題。下面的代碼有一個private static SHA1成員(這是一個IDisposable,但因爲它是static,它永遠不會被最終確定)。然而,在壓力下這段代碼拋出表明它已經關閉了異常: Caught exception. Safe handle has been closed"
Stack trace: Call stack where exception w