C#.NET:图形控件使我的应用程序在工作站解锁后冻结

时间:2010-03-24 17:19:48

标签: c# visual-studio-2008

我有一个多线程的图形控件。

直到现在它工作正常,但我只是注意到,每当我在我的应用程序上显示此控件时,会发生以下情况:如果我锁定并解锁我的工作站,它会冻结,就好像它处于某种无限循环中一样。

更奇怪的是,只有当我没有从Visual Studio启动应用程序并且没有附加到应用程序时,才会出现此错误。

有没有人知道发生了什么?

例如,如果我将Visual Studio附加到已经冻结的应用程序,我可以看到我的线程正在执行哪些代码行吗?

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

我们最近(大约一年半);同样的问题。当你更改主题的颜色时,它有时会触发IE刷新缓存。等

问题是我们有一个启动画面,它的窗口在一个线程上创建,然后在其他线程中显示(ShowDialog())。一旦我们将窗口创建移动到实际显示它的同一个线程,它就会恢复。 .Dispose():在启动窗口中也有一些变化,它们也可能产生影响。

微软有一篇关于此的文章,他们基本上建议run their Spy++ program and look at your program when it's hung。有一个“Windows”窗口,搜索您的应用程序并查找不应该存在的任何窗口。他们可能有一个活动/附加的Windows消息泵,但它没有泵送。 “更改”消息未得到处理,所有.NET窗口都停止 - >挂起。

答案 1 :(得分:0)

只需将VS附加到冻结的应用程序并点击暂停按钮,VS就会显示执行代码。