콘솔 응용 프로그램이 종료 될 때 특정 기능을 실행하고 싶습니다. 나는 많은 해결책을 찾았지 만 그들 중 누구도 나를 위해 일하지 않습니다. 다음 코드가 CancelKeyPress 등을 표시하지 않는 이유는 무엇입니까?F를 사용하여 콘솔에서 끝내기 이벤트 #
printfn "Starting a Test"
System.Console.ReadLine() |> ignore
System.Console.CancelKeyPress.Add (fun _ -> printfn "CancelKeyPress")
System.AppDomain.CurrentDomain.ProcessExit.Add (fun _ -> printfn "ProcessExit")
System.AppDomain.CurrentDomain.DomainUnload.Add (fun _ -> printfn "DomainUnload")
내 코드를 약간 수정하고 try finally 문을 추가했지만 행운을 추가하지 않았습니다. 나는 응용 프로그램을 실행 한 다음 명중 "Ctrl + C"또는 나는 그것이 "ProcessExit"을 인쇄하여 예제를 실행하면 "닫기 버튼"
let write v = System.IO.File.AppendAllText("test.txt", v + "\n")
try
write "Starting a Test 2"
System.Console.ReadLine() |> ignore
System.Console.CancelKeyPress.Add (fun _ -> write "CancelKeyPress")
System.AppDomain.CurrentDomain.ProcessExit.Add (fun _ -> write "ProcessExit")
System.AppDomain.CurrentDomain.DomainUnload.Add (fun _ -> write "DomainUnload")
finally
write "Try Finally"
안녕하세요, 제안 주셔서 감사하지만 작동하지 않는 것 같습니다. 내 첫 번째 게시물을 참조하십시오. –
ReadLine 문제를 지적 해 주셔서 감사합니다. 그것이 내 코드에서 잘못된 것입니다. 먼저 Process.WaitForExit()을 호출하고 그때 만 처리기를 등록했습니다. :) –