finalizer

    15

    5답변

    finalize 호출 중에 현재 객체에 대한 참조를 저장하면 어떻게됩니까? 예 : class foo { ... public void finalize() { bar.REFERENCE = this; } } 개체가 가비지 수집 되었습니까? 아니요? 나중에 bar.REFERENCE에 액세스하려고하면 어떻게됩니까?

    1

    1답변

    유닛 통합 테스트 &을 프로파일 링하고 있는데, NHibernate.Transaction.AdoTransaction의 종료 자에 많은 시간을 소비했음을 알았습니다. 이는 제대로 폐기되지 않았 음을 의미합니다. 코드에서 AdoTransaction을 직접 사용하지 않으므로 NHibernate 내부의 다른 객체에 의해 사용되었을 가능성이 큽니다. 내가 버리는 걸

    20

    4답변

    저는 WPF에 비교적 익숙하지 않습니다. Windows Forms과 달리 WPF 컨트롤 계층 구조는 IDisposable을 지원하지 않습니다. Windows Forms에서 사용자 정의 컨트롤이 관리되는 리소스를 사용하면 모든 컨트롤이 구현 한 Dispose 메서드를 재정 의하여 리소스를 정리하는 것이 매우 쉽습니다. WPF에서 이야기는 그렇게 단순하지 않습

    2

    3답변

    다음 코드에서 위의 오류가 발생합니다. 그것을 바로 잡는 방법. 감사. 아래 코드에서 protected override void Finalize() { Dispose(false); } 을 찾아보십시오. using Microsoft.Win32; using System.Runtime.InteropServices; public class Kiosk :

    2

    4답변

    종료하기 위해 스레드에서 exit(0) (<stdlib.h>)에 대한 호출을 사용하는 .NET C#/C++ 앱이 있습니다. 경우에 따라 이상한 부분은 exit을 호출 한 직후 관리 대상 개체의 종료자를 호출하며, 다른 경우에는 전혀 호출되지 않습니다. 상황이 꽤 결정적입니다. 앱이 평생 동안 외부 플러그인 dll (관리되지 않는 C로 작성 됨)에서 일부 메

    4

    3답변

    질문은 finalize가 호출 될 때 객체가 리소스를 처리한다는 사실을 테스트하는 방법입니다. 클래스에 대한 코드 :는 public class TestClass : IDisposable { public bool HasBeenDisposed {get; private set; } public void Dispose() { Has

    5

    4답변

    이 클래스에 대한 나의 이해는 Finalizer (소멸자) 또는 클래스가 호출되었는지 확인하려고 할 때 사용해야하지만 두 가지 테스트에서 사실이 아닌 것 같습니다. dispose 메서드가 호출되었는지 확인하지 못하면 다른 방법으로 처리합니까? 예를 들어, 작업 관리자 나 다른 프로그램을 통해 프로그램을 닫더라도 일부 코드가 내 개체를 끝내기 위해 실행되는지

    5

    3답변

    변수가 .Net 언어로 범위를 잃는 즉시 "자동으로"최종/소멸자 코드를 실행할 수있는 방법이 있습니까? 가비지 콜렉터가 불확정 한 시간에 실행되기 때문에 변수가 범위를 잃 자마자 소멸자 코드가 실행되지 않는 것으로 보입니다. IDisposable에서 상속받을 수 있고 명시 적으로 내 객체에 Dispose를 호출 할 수 있다는 것을 알았지 만, non -.N

    2

    3답변

    나는 다음과 같은 코드를 가지고 : public class A { ~A() { Console.WriteLine("destructor"); } } public static A Aref; static void Main(string[] args) { Aref = new A()