簡體   English   中英

如何檢測控制台應用程序何時被 C# 中的計划任務停止?

[英]How to detect when a console application stopped by a scheduled task in C#?

我有一個運行指定時間段的控制台應用程序。 如果應用程序用完指定的時間,則會有一個計划的作業停止應用程序。

您能否請我知道是否有任何方法可以檢測應用程序何時被調度程序停止?

我已經嘗試了幾件事,例如在CurrentDomain.ProcessExit上捕獲事件並實現SetConsoleCtrlHandler ,但它們都沒有奏效。

謝謝,提前提出建議。

如果進程被殺死,你無法在進程中檢測到它。 你需要一個不同的解決方案。 選項包括有一個單獨的“觀察者”進程,但我猜這里會不必要地復雜。

我可能會在進程本身中放置一個金絲雀線程,該線程使用計時器和取消令牌來指示它應該完全中止的任務。

同一個控制台應用程序可以在啟動時檢測其自身的實例是否已經在運行(例如掛起)並自行管理進程終止。 這樣所有的邏輯都在一個地方,你不需要計划任務來做任何花哨的事情。

找到這篇文章。 https://devblogs.microsoft.com/oldnewthing/20040722-00/?p=38373說明應用程序無法處理終止進程。 你必須以一種很好的方式退出你的控制台應用程序,而不是僅僅殺死它的進程

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM