我有一個擁有大量靜態成員的類,其中一些保持對託管和非託管對象的引用。如何以及何時處置c#靜態成員?
例如,一旦引用Type,就會調用靜態構造函數,這會導致我的類旋轉任務的blockingQueue。例如,當一個靜態方法被調用時會發生這種情況。
我實現了IDisposable,它給了我處理我創建的任何實例對象的方法。但是,如果消費者不從我的類創建任何實例對象,則永遠不會調用這些方法。
如何以及在哪裏放置代碼來處理由我的類的靜態部分維護的引用?我一直認爲當最後一個實例對象被釋放時,處理靜態引用的資源會發生;這是我第一次創建一個沒有實例創建的類。
靜態項目可用於應用程序的整個執行。您不使用NEW關鍵字創建靜態項目,所以這意味着您沒有任何事件的多個實例,因爲您實際上不會實例化任何內容。關於被管理對象,不用擔心,GC會照顧他們。關於非託管資源嘗試在非靜態類中使用它們,否則它們將一直保留,直到您關閉應用程序。靜態項目不支持處置。 – alexandrudicu
謝謝。看起來我需要在這裏重新考慮我的設計。 – Joe