How do I write an exit handler for an F# application?

1.4k views Asked by At

Subject says it all.

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

2

There are 2 answers

2
Dmitry Lomov On BEST ANSWER

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

System.AppDomain.CurrentDomain.ProcessExit.Add(fun _ -> ...)
1
Brian On

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"

Related Questions in F#