我有一个多线程的图形控件。
直到现在它工作正常,但我只是注意到,每当我在我的应用程序上显示此控件时,都会发生以下情况:如果我锁定和解锁我的工作站,它就会卡住,就像它处于某种无限循环中一样。
更奇怪的是,只有当我没有从 Visual Studio 启动应用程序并且没有附加到它时才会出现此错误。
有人知道发生了什么事吗?
例如,如果我将 Visual Studio 附加到已卡住的应用程序,我能否看到我的线程正在执行哪些代码行?
任何帮助将不胜感激!
最佳答案
我们最近(大约一年半;)遇到了同样的问题。当 IE 刷新缓存时,当您更改主题的颜色时,它有时也会触发。等等
问题是我们有一个启动画面,它的窗口在一个线程上创建,然后在另一个线程中显示 (ShowDialog()
)。一旦我们将窗口创建移动到实际显示它的同一个线程,它就会恢复。 .Dispose():ng 启动窗口也有一些变化,它们也可能产生影响。
Microsoft 有一篇关于此的文章,他们基本上建议 run their Spy++ program and look at your program when it's hung .有一个“Windows”窗口,搜索您的应用程序并查找不应存在的任何窗口。他们可能有一个激活/附加的 Windows 消息泵,但它没有泵送。 “更改”消息未得到处理,所有 .NET 窗口停止 -> 挂起。
关于C#.NET : A graphical control makes my app freeze after workstation unlock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2509885/