【发布时间】:2010-07-30 04:46:08
【问题描述】:
主题说明了一切。
如果我的应用程序被 ^C 终止,我希望运行一些代码。
【问题讨论】:
-
只是一个想法——尽管您询问的是 F#,但您可能会在 Google 上搜索“.Net Application Termination Event”并找到有关如何正确处理此类问题的一般问题的更多信息。
标签: .net f# exit-handler
主题说明了一切。
如果我的应用程序被 ^C 终止,我希望运行一些代码。
【问题讨论】:
标签: .net f# exit-handler
使用AppDomain.ProcessExit (http://msdn.microsoft.com/en-us/library/system.appdomain.processexit.aspx):
System.AppDomain.CurrentDomain.ProcessExit.Add(fun _ -> ...)
【讨论】:
见下面的代码。要在控制台应用程序中处理 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"
【讨论】: