El sujeto lo dice todo.¿Cómo escribo un manejador de salida para una aplicación F #?
Quiero que se ejecute algún código si mi aplicación finaliza, por ejemplo,^C.
El sujeto lo dice todo.¿Cómo escribo un manejador de salida para una aplicación F #?
Quiero que se ejecute algún código si mi aplicación finaliza, por ejemplo,^C.
Uso AppDomain.ProcessExit
(http://msdn.microsoft.com/en-us/library/system.appdomain.processexit.aspx):
System.AppDomain.CurrentDomain.ProcessExit(fun _ -> ...)
Tal vez ProcessExit (http://msdn.microsoft.com/en-us/library/system.appdomain.processexit.aspx) sea más adecuado para el caso de la terminación normal del proceso. En el ejemplo de la consola sencilla System.AppDomain.CurrentDomain.ProcessExit.Add (divertido _ -> printfn "ProcessExit") System.AppDomain.CurrentDomain.DomainUnload.Add (divertido _ -> printfn "DomainUnload") emite "ProcessExit "después de la salida. – desco
¡Absolutamente! ¿Cómo podría extrañarlo? –
Consulte el código a continuación. Para manejar Ctrl-C en una aplicación de consola, use el evento 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"
Tenga en cuenta que esto solo maneja la terminación^C, no la salida arbitraria del proceso. –
Es sólo una idea - a pesar de que estás preguntando sobre F # que probablemente podría google para el "Evento de Terminación de aplicaciones .Net" y encontrar más información en la general, cuestión de cómo manejar este tipo de problema de manera adecuada. –