有沒有辦法在C#中執行一個方法後執行過程意外退出?我現在的方案是:一個MSTest單元測試項目,並在單元測試的執行過程中(在這種情況下只用Thread.Sleep)停止調試過程,我可以指定一個必須調用的方法嗎?在測試場景中意外退出進程後的執行方法?
(在這種情況下,也許一個MSTest的屬性?)我已經嘗試過:完成並實現了IDisposable
有沒有辦法在C#中執行一個方法後執行過程意外退出?我現在的方案是:一個MSTest單元測試項目,並在單元測試的執行過程中(在這種情況下只用Thread.Sleep)停止調試過程,我可以指定一個必須調用的方法嗎?在測試場景中意外退出進程後的執行方法?
(在這種情況下,也許一個MSTest的屬性?)我已經嘗試過:完成並實現了IDisposable
如果您手動停止任何進程(即通過終止IDE中的調試進程或通過在任務管理器中終止進程),您將繞過代碼的正常運行。一切都會被激烈地終止,並且你的Dispose
或其他關閉方法都不會觸發:所有代碼執行都會停止。
請注意,如果您從過程中取出而不是,您的代碼將繼續運行,但您的過程不會被要求停止。 (另外,僅供參考:如果您在任務管理器的「應用程序」選項卡中選擇「結束任務」,則實際上請求應用程序停止 - 它允許關閉代碼觸發,但不保證應用程序將關閉)
簡而言之:如果您停止調試過程,則不會按定義執行代碼。我懷疑你需要看看另一種方法:大概有一個理由,你希望你的方法被調用,並且可能有不同的解決方案,你可以嘗試。
如果這個過程中你是聽不是一個過程,你啓動(在你的情況看起來像所以),我沒有看到很多其他選項,如簡單的Timer
實現,以及如果指定的進程是系統內存中可用的進程中的每個tick控制。
你能舉一個你想要做什麼的具體例子嗎? – 2013-04-11 07:43:24
'unexpectedly'意思是有錯誤? – Pyromancer 2013-04-11 07:43:26
@mrtentje IDisposable有什麼問題? – Alex 2013-04-11 07:44:05