문제

소켓을 올바르게 닫고 서버에 닫히고 있음을 알릴 수 있지만 응용 프로그램이 닫히면 소켓이 모두 닫히고 때로는 파일이 잠겨 있습니다. 응용 프로그램이 닫힐 때 메소드를 어떻게 실행할 수 있습니까?

이것은 양식 앱에서 사용될 라이브러리로 들어갈 것입니다.

도움이 되었습니까?

해결책

나는 구현할 것이다 idisposable 이러한 리소스를 사용하는 수업에서. 그러면 응용 프로그램 유형이 지원하는 종료 방법 (onformclose, onstop, application_end, ...)에서 Dispose를 명시 적으로 호출 할 수 있습니다.

다른 팁

Windows 양식 응용 프로그램 인 경우 양식에 초점을 맞출 수있는 경우 속성 창에서 이벤트 번개를 클릭하고 양식 폐쇄 이벤트를 사용하십시오.

this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(OnFormClosing);

private void OnFormClosing(object sender, FormClosingEventArgs e)
{
    // Your socket logic here
}

또한 닫히는 양식을 가로 채어야하는 경우 취소 속성을 true로 설정하십시오.

e.Cancel = true;

Winforms 앱에 대해 이야기하고 있습니까? 그렇다면 사용하십시오 형태를 이벤트 당신의 주요 형태에.

그것이 가장 좋은 곳인지 확실하지 않지만, 당신은 당신의 프로세스가 훅킹으로 닫히고 있다고 말할 수 있습니다. AppDomain.processexit. 정리는 괜찮지 만 메시지를 보내는 것이 좋은시기라고 생각하지 않습니다. :)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top