finalizer

    2熱度

    2回答

    從MSDN文檔報價爲GC.WaitForPendingFinalizers(): 上終結器運行的線程是不確定的,所以不能保證此方法將終止。 我真的不明白這句話。這種方法在哪種情況下不會終止?這與終結器運行的線程有什麼關係?他們爲什麼說這個線程是「未指定的」? 關於終結器線程,我認爲以下是正確的(?): 這裏只有一個終結線程。 終結器總是在單獨的線程上運行(即永遠不會在主線程或任何其他用戶創建的線程

    0熱度

    1回答

    我正在封裝一些手動資源處理的本地代碼。我希望我的C#包裝器在不將責任傳遞給客戶端的情況下處理此問題。這是可能的,還是我不可避免地必須實施IDisposable並將責任傳遞給客戶端代碼? ie甚至可以編寫自動處理管理資源的類嗎? 如果我說確定性處理這些資源不是問題,而且我只關心它們被安全釋放,我很高興讓GC通過終結者安排他們的發佈。

    1熱度

    1回答

    我重寫finalize()方法做了一些工作,同時再次聲稱objects.But某人的內存空間說我必須調用父類的finalize()在重寫finalize() method.But 構造自動調用它超不同於finalize()方法的類構造函數。 你能給我點什麼嗎?

    7熱度

    3回答

    當我在這行代碼: // create tab4 intent = new Intent(this, ActWhereAmI.class) .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); tabspecWhereAmI = tabHost .newTabSpec("tab4") .setIndicator(Utilitie

    1熱度

    2回答

    我寫了一個簡單的程序來演示垃圾收集。下面是代碼: public class GCDemo{ public static void main(String[] args){ MyClass ob = new MyClass(0); for(int i = 1; i <= 1000000; i++) ob.generate(i); } /** * A cla

    2熱度

    1回答

    我正在編寫一個多線程的java控制檯應用程序,我打算通過Ctrl-C殺死它。在這種情況下,如果我有一個封裝單個線程的類,那麼關閉封裝類finalize方法中的子線程是一種很好的做法嗎? 如果您按Ctrl-C原始應用程序並且所有線程都未正確關閉,是否有可能讓原始應用程序的工件仍在運行? 僞代碼: public class ParentClass { Thread childThread = ne

    22熱度

    4回答

    在我的galaxy Tab 2(Samsung)上啓動我的應用程序時,我不斷收到此錯誤。 我正在開發的應用程序非常複雜,並且很難找出這個錯誤來自哪裏。所以我開始逐段剝離我的應用程序,我最終只用了一個mapview應用程序,因爲你可以找到here 剝離後我結束了一個應用程序,只是一個沒有overlayItem的mapview! 因此,按照教程,直到第1點9 這裏的MapView的活動: packag

    5熱度

    2回答

    比方說,我已經用close()方法創建了一些資源類來清理資源,我想覆蓋finalize()以釋放資源(並打印一個警告)如果有人忘記調用close()。這怎麼能正確完成? 僅建議用於本地(JNI分配)資源嗎? 如果從終結器中使用對已完成的另一個對象的引用,會發生什麼?如果存在循環依賴關係,我不會看到垃圾收集器如何阻止您訪問可能已執行終結器的對象。 有沒有更好的替代方案來重寫finalize()來檢測

    2熱度

    1回答

    我在運行到不同窗口的處理程序上工作。 On保持控制器,即主要的PApplet,另一個正在運行一些OpenGL,同時也是的子類別。 創建OpenGL窗口的一個實例並不是很難,但是如何在不調用exit()的情況下調用並殺死整個進程。我只想關閉第二個窗口並釋放所有的資源。 我找不到任何合適的解決方案。

    4熱度

    1回答

    我所經歷的finalizer guardian example張貼在堆棧溢出,我對這次幾個問題: 爲什麼我們需要創建一個守護的對象?爲什麼不會簡單地重寫終結器工作? (因爲所有的類都是Object類的子類)。 什麼時候創建了Guardian對象?我認爲這是在課堂上加載。 我不明白正在創建的監護對象的語法。函數與變量聲明一起聲明。在Java中調用這個範例的是什麼?