나는이 같은 창을 만들 수 있습니다. MyWindow의 소멸자를 호출하기 위해 delete/destroy와 같은 것을 호출해야합니까?WPF 창 클래스 파괴
답변
가비지 수집기가 느껴질 때마다 C#에서 호출되는 "소멸자"또는 finalizer이 호출됩니다. System.GC.Collect()을 사용하여 가비지 수집기를 수동으로 트리거 할 수 있지만 you probably don't want to do this. USING 절은 때 호출
이using (var wnd = new MyWindow())
{
wnd.Owner = this;
wnd.ShowDialog();
}
이 (wnd.Dispose을 만들 것입니다) : 당신은 다른 한편으로는() 폐기에 대해 이야기하면 당신은 "사용"절에 창을 만들어이 호출 될 수 있습니다 수행, 기본적으로 쓰기와 같은 것입니다 : -와 several more on StackOverflow
var wnd = new MyWindow();
wnd.Owner = this;
wnd.ShowDialog();
wnd.Dispose();
을 IDisposable 인터페이스의 사용에 대한 this question 도움이 될 수 있습니다.
using (MyWindow wnd = new MyWindow())
{
wnd.Owner = this;
wnd.ShowDialog();
}
이것은 내가 당신이 찾고있는 생각이다 중괄호, 후 창에 Dispose
를 호출합니다. MyWindow
클래스는 IDisposable
을 구현해야합니다.
작은 것이 하나 있는데, 창을 열고 소멸자라고 부르기를 원합니다. 그건 정말 말이되지 않습니다. 당신은 창을 닫아야한다. 그러면 소멸자가 암묵적으로 호출 될 것이다.
명시 적으로 호출하려는 경우 MyWindow 클래스에서 Dispose를 재정의해야합니다. 여기에서 명시 적으로 삭제하려는 모든 리소스를 정리할 수 있습니다.
Windows가 닫힐 때까지'ShowDialog'가 반환되지 않습니다 - 그래서 당신의 답을 이해하지 못합니까? –
그래서 대화 상자가 닫힐 때까지 'ShowDialog'가 반환되지 않으면 대화 상자가 여전히 파괴되지 않으면 어떻게 소멸자를 호출 할 수 있습니까? 그것이 내가하려는 것입니다. –
- 1. IDisposable WPF의 창 클래스
- 2. 클래스 인스턴스 자체를 파괴 할 수 있습니까?
- 3. 이름으로 WPF 창 표시
- 4. WPF 창 크기
- 5. wpf 동적 창
- 6. WPF 창 위치
- 7. WPF 창 위치 바인딩
- 8. WPF 창 처분
- 9. WPF 창 투명성 동안
- 10. WPF observablecollection입니다. 자식 창
- 11. WPF 창 위치
- 12. 문제 창 열기 WPF
- 13. WPF 비활성화 창 이동
- 14. WPF 확장 창
- 15. Application_Startup에 창 표시. Wpf
- 16. WPF 창 만들기 - 팝업
- 17. WPF 격자 창 레이아웃
- 18. WPF 상위 창 바인딩
- 19. WPF 유리 창 대체?
- 20. wpf 업데이트 방법 창
- 21. WPF 창 배경색
- 22. 닫는 중 WPF 창
- 23. WPF : 창 Restyling?
- 24. 부모 창 위의 하위 wpf 창
- 25. WPF 응용 프로그램 창 비상 창 열기
- 26. 창 클래스 이름에서 창 핸들 가져 오기
- 27. 다른 wpf 창 안에 wpf 창이 있습니다
- 28. GTK에서 Windows 파괴 #
- 29. 논리적 파괴
- 30. 내가 파괴
왜 소멸자를 호출해야합니까? 간단한 정리 작업을 수행하는 경우 MyWindow에 IDisposable을 구현하고 Dispose 메서드에서 정리 작업을 수행하십시오. 나는 소멸자를 사용하는 것이 좋은 생각이라고 믿지 않는다. – Charlie