0

执行过程意外退出后,有没有办法在 C# 中执行方法?

我当前的场景是:一个MSTest单元测试项目,在单元测试的执行过程中(在这种情况下只有Thread.Sleep)我停止调试过程,我可以指定一个必须调用的方法吗?

(在这种情况下可能是一个 MSTest 属性?)我已经尝试过:完成并实现 IDisposable

4

2 回答 2

1

如果您手动停止任何进程(即通过终止 IDE 中的调试进程,或通过终止任务管理器中的进程),您将绕过代码的正常运行。一切都被积极终止,您Dispose或其他关闭方法都不会触发:所有代码执行都已停止。

请注意,如果您改为从进程中分离,您的代码将继续运行,但不会要求您的进程停止。(另外,作为参考:如果您从任务管理器的“应用程序”选项卡中“结束任务”,这实际上要求应用程序停止 - 这允许关闭代码触发,但不保证应用程序将在及时。)

简而言之:如果您停止调试过程,则不会按照定义执行任何代码。我怀疑您需要查看另一种方法:您希望调用您的方法可能是有原因的,并且您可能可以尝试另一种解决方案。

于 2013-04-11T08:10:00.910 回答
0

如果您正在收听的进程不是启动的进程(在您的情况下似乎是这样),我看不到很多其他选项,例如简单的Timer实现,并且在每个刻度上控制指定的进程是否在系统中可用的进程中记忆。

于 2013-04-11T07:47:17.843 回答