为什么在调试期间暂停我的项目会停止其他程序?

Why does pausing my project during debugging stop other programs?

我正在做一个 .Net 项目,它工作得很好,但是我注意到当我在调试时暂停程序时,一些与项目完全无关的其他文件无法打开。这些文件的示例是在 MS Access、MS Internet Explorer 中打开的文件...

单击 运行 按钮后,文件会立即打开。

对于为什么会发生此文件冻结,有什么建议吗?

下图说明了这个问题(红色方块中的文件在调试器暂停时不会打开,它们会在程序 运行 时打开)。

这里的罪魁祸首几乎可以肯定是打开文件过程中的某些东西正在使用 DDE。 DDE 的问题在于它通过使用广播消息来工作。这些消息必须由桌面上的每个顶级 window 处理。如果其中一个顶级 window 的消息循环当前没有处理消息,而是暂停在调试器中,那么 DDE kindof 就会崩溃。

DDE 在它的时代还不错——在抢占式多任务被添加到 windows 之前。这是很久以前的事了,但不幸的是有些程序仍在使用它。