为什么我在调试时Word会冻结?

3
每当我在Visual Studio 2008中的某个C#.NET应用程序中遇到断点,并启动Microsoft Word 2007时,Word将无法打开,直到我重新启动C#应用程序。我有一些关于为什么会这样的理论,但有人确定吗?

我也遇到过这个问题。如果我只是在VS中向前走几行,而不是重新启动,通常情况下它可以正常工作。 - Seibar
2个回答

4
这可能是因为Word向顶层窗口发送DDE消息,而您的应用程序由于在调试器中挂起而无法处理它。Raymond Chen在他的博客文章中提到了这一点(虽然与调试器没有直接关系,但效果相同)。

2
一种常见的挂起原因是(或曾经是)一个应用程序在启动时发送了一个广播Windows消息,并期望每个窗口都能响应。如果你在调试器中打开了一个GUI应用程序,那么它就不会回复Windows消息,因此发送方应用程序将挂起等待响应。我记得使用这种技术的最常见类型的程序是安装程序。
我不知道Word 2007是否发送任何广播消息,但这只是可能发生的一种方式。COM/OLE的问题有很多种卡住的方法,这对于Word来说可能更有可能发生。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接