2012-06-26 2 views
0

.NET의 ApplicationContext에서 상속받은 클래스가 생성되었으며, 내 OnClosing 이벤트를 발생시키는 가장 좋은 곳이 궁금합니다. 이제 ApplicationContext에는 "ThreadExit"이벤트가 있지만 ExitThread와 ExitThreadCore가 모두 실행 된 후에 실행됩니다. 일반적인 OnClosing 이벤트가 발생하는 곳입니까? 이 이벤트는 OnClosed 이벤트가 실행되는 것과 같습니다.일반적으로 발생한 OnClosing Events는 어디에서 발생합니까?

후속 조치로서 내 OnClosed 이벤트는 어디에서 실행해야합니까? 우선 쓰레기를 버리고 처음부터 두는 것이 그럴듯 해 보입니다. 폐기의 끝이 안전할까요? 또는 OnClosed가 방금 삭제 된 항목이 필요할 수도 있습니까?

편집 : 그래서 ApplicationContext에서 상속 된 ThreadExit 이벤트를 사용해야합니다. 제 질문은 지금 여기서 끝내기를 취소하는 것이 안전할까요? 또한 여전히 어디에서 OnClosed를 시작해야합니까?

+0

ApplicationContext 클래스는 UI 스레드 상태를 모델링합니다. 활성 상태 인 한 UI 스레드가 메시지 루프를 펌핑합니다. OnClosing은 거의 의미가 없으며, 윈도우가 남아 있지 않을 때 취소 할 필요가 없습니다. 마지막 윈도우가 사라진 후에는 아무 것도 일어나지 않을 것입니다. ThreadExit은 이미 스레드의 끝을 알립니다. 어쩌면 ThreadExiting 일지 모르지만, 당신은 그것에 대해 무엇을 할 것이며, ThreadExit과 어떻게 다릅니 까? –

+0

당신은 창문이 있다고 가정합니다. 내 수업은 닫을 때 어떤 창도 사용하지 않을 수도 있습니다. 시스템 트레이에서 실행중인 앱을 모델링하는 클래스입니다. – user912447

+0

ThreadExit은 Forms 애플리케이션에서 OnFormClosing과 비슷하게 작동합니까? 그래서 나는 그 이름의 거대한 팬이 아니더라도 새로운 것을 만드는 대신에 그것을 사용할 수 있습니다. – user912447

답변

0

ThreadExit 이벤트를 사용하겠습니다. 그 이름은 싫지만. 그래도 내 OnClosed 이벤트를 배치하는 가장 좋은 장소가 궁금합니다.

관련 문제