C# 在测试场景中进程意外退出后执行方法?

C# 在测试场景中进程意外退出后执行方法?,c#,mstest,C#,Mstest,在执行过程意外退出后,是否有办法在C#中执行方法 我当前的场景是:一个MSTest单元测试项目,在单元测试的执行过程中(本例中仅使用Thread.Sleep),我停止调试过程,我可以指定一个必须调用的方法吗 (在本例中可能是MSTest属性?)我已经尝试过:如果您正在侦听的进程不是您启动的进程(在您的情况下,似乎是这样),则完成并实现IDisposable,我看不到像一个简单的定时器实现和在每个刻度上控制指定进程是否在系统内存中可用的进程中这样的其他选项。如果手动停止任何进程(即通过在IDE中终

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

我当前的场景是:一个MSTest单元测试项目,在单元测试的执行过程中(本例中仅使用Thread.Sleep),我停止调试过程,我可以指定一个必须调用的方法吗


(在本例中可能是MSTest属性?)我已经尝试过:如果您正在侦听的进程不是您启动的进程(在您的情况下,似乎是这样),则完成并实现IDisposable

,我看不到像一个简单的
定时器
实现和在每个刻度上控制指定进程是否在系统内存中可用的进程中这样的其他选项。

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

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


简而言之:如果停止调试过程,根据定义将不会执行任何代码。我怀疑您需要考虑另一种方法:您希望调用方法大概是有原因的,您可能可以尝试另一种解决方案。

您能给出一个具体的例子说明您正在尝试做什么吗?
意外地
表示有错误?@mrtenje和IDisposable有什么问题?@L-Three在我的问题中已经给出了一个例子……也许Visual Studio扩展可以扩展调试行为。()