如何为F#应用程序编写退出处理程序?

时间:2010-07-30 04:46:08

标签: .net f# exit-handler

主题说明了一切。

如果我的应用程序被^ C终止,我想要运行一些代码。

2 个答案:

答案 0 :(得分:4)

使用AppDomain.ProcessExithttp://msdn.microsoft.com/en-us/library/system.appdomain.processexit.aspx):

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

答案 1 :(得分: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"