Question

Subject says it all.

I want some code to run if my application is terminated by, say, ^C.

Was it helpful?

Solution

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

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

OTHER TIPS

See code below. To handle Ctrl-C in a console app, use the Console.CancelKeyPress event.

// 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"
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top