gtk bin 컨트롤이 있는데 제거하고 싶습니다. 즉, 창 에서뿐만 아니라 운영 메모리에서도 제거해야합니다. window.Remove (child_item)를 호출하여 창에서 제거하고 있지만 Destroy() 또는 Dispose()를 호출해야합니까? 아니면 둘 다 호출해야합니까? 어떤 순서로?Gtk.Bin.Destroy()와 Gtk.Bin.Dispose()의 차이점
3
A
답변
2
Dispose()는 GObject
의 일부이며 참조를 해제하고 신호 처리기를 분리하기 위해 인스턴스 마무리 시퀀스 중에 사용됩니다. 참조 사이클의 경우에는 여러 번 호출 될 수 있으므로 설정되지 않은 필드를 확인하는 것이 좋습니다.
Destroy()는 GtkWidget
의 일부이며 Dispose() 구현과 비슷한 용도로 사용됩니다. Destroy()는 GObject
이 GTib의 내부 유형으로 시작하기 전에 (나머지 유형 시스템과 함께) GLib로 이동하기 전에 실제로 역사적으로 유물입니다. Destroy()는 GtkWidget
안에 Dispose()의 기본 구현의 일부로 호출됩니다.
컨테이너에서 자식을 제거하려면 컨테이너에서 Remove (자식)를 호출하거나 자식에서 Destroy()를 호출하면됩니다. Remove()는 자식에 대한 참조를 해제하여 그것이 마지막 참조라면 위젯을 파괴하는 것입니다. GtkWidget
에있는 Destroy()를 호출하면 상위 컨테이너에서 위젯이 제거됩니다. 두 코드 경로는 서로 바꿔야합니다.
호출 Dispose()는 Gtk # -ism입니다. Dispose() 메서드는 대부분 재정의되고 직접 호출되지 않습니다.
관련 문제
- 1. BeanNameUrlHandlerMapping의 차이점 SimpleUrlHandlerMapping의 차이점
- 2. 차이점 System.Windows.Controls.Page와 Windows.UI.Xaml.Controls.Page의 차이점
- 3. 차이점
- 4. 차이점 downcase와 downcase의 차이점! Ruby에서
- 5. IE5와 IE8의 차이점 모드 차이점
- 6. achartengine의 차이점 Type.DEFAULT와 Type.STACKED의 차이점
- 7. 차이점 LayoutInflater의 차이점 SearchView 아이콘
- 8. 차이점 jaxb 차이점 자바 7과 자바 6
- 9. PhpStorm의 차이점
- 10. '와'의 차이점
- 11. 병합 차이점
- 12. 다각형 차이점
- 13. 컴파일러 차이점
- 14. 차이점 포크
- 15. sha1의 차이점
- 16. CLR의 차이점
- 17. 코드의 차이점
- 18. 정렬 차이점
- 19. UIsystemfonts의 차이점
- 20. 구문 차이점
- 21. generics의 차이점
- 22. SQL의 차이점
- 23. 네트워크의 차이점
- 24. RegEx의 차이점
- 25. 파일이없는 차이점
- 26. SignalR의 차이점
- 27. IDependencyResolver의 차이점
- 28. g ++ 차이점
- 29. 라이브러리의 차이점
- 30. 행간 차이점
마지막 단락을 명확하게 설명해 주시겠습니까? "Gtk # -ism"은 Gtk #을 사용할 때 꼭해야만하는 것처럼 들리지만 문장의 나머지 부분은 Gtk #가 수행되지 않아야 함을 의미합니까? 또한, 오버라이드 된 메소드가 호출되지 않아야하는 이유는 무엇입니까? 그리고 위의 상태에서'Dispose()'가 자동적으로'Destroy()'를 호출하면 (다른 방법은 아닙니다!)'Destroy()보다는 직접적으로 호출되어야하는'Dispose)', 무엇이라도 있으면? –