2010-07-30 2 views
8

제목에 모두 나와 있습니다.F # 응용 프로그램에 대한 종료 처리기를 작성하려면 어떻게해야합니까?

내 응용 프로그램이 말하면^C에 의해 종료되면 일부 코드가 실행되기를 원합니다.

+0

그냥 생각 - 당신이 F 번호에 대해 요구하고 있지만, 당신은 아마 "닷넷 응용 프로그램 종료 이벤트"에 대한 구글과 일반에 대한 자세한 정보를 찾을 수 문제의이 종류를 제대로 취급하는 방법의 질문. –

답변

4

사용 AppDomain.ProcessExit (http://msdn.microsoft.com/en-us/library/system.appdomain.processexit.aspx) :

System.AppDomain.CurrentDomain.ProcessExit(fun _ -> ...) 
+1

ProcessExit (http://msdn.microsoft.com/en-us/library/system.appdomain.processexit.aspx)은 정상적인 프로세스 종료의 경우에 더 적합 할 수 있습니다. System.AppDomain.CurrentDomain.DomainUnload.Add (_ 즐겁게 -> printfn "DomainUnload") 그것을 출력 "ProcessExit - 단순 콘솔 예 System.AppDomain.CurrentDomain.ProcessExit.Add (> printfn"ProcessExit "_ 즐겁게) 중 "종료 후. – desco

+0

물론입니다! 나는 그것을 어떻게 놓칠 수 있습니까? –

1

아래 코드를 참조하십시오. 콘솔 앱에서 Ctrl-C를 처리하려면 Console.CancelKeyPress 이벤트를 사용하십시오.

// does not work - no exception on Ctrl-C 
//System.AppDomain.CurrentDomain.UnhandledException.Add(
// fun _ -> printfn "app is about to die") 

System.Console.CancelKeyPress.Add(
    fun _ -> printfn "app is about to die") 
printfn "starting..." 
System.Threading.Thread.Sleep(5000) // press Ctrl-C 
printfn "ended" 
+0

이것은 임의의 프로세스 종료가 아닌^C 종료 만 처리합니다. –

관련 문제