主UI线程调用Control.WaitForWaitHandle时,应用程序随机冻结

时间:2019-05-09 19:56:50

标签: .net multithreading winforms

我有一个使用Framework 4.6编译的窗口形式x86-legacy-application,它有多个正在运行的线程,这些线程将在Main UI线程上调用以更新UI。有时,应用程序主UI线程将停止运行,并且应用程序不再响应。在某些情况下,Windows资源管理器也会挂起。

如果将Visual Studio调试器附加到该进程,则会看到一些正在等待主线程响应的线程(请参见图1和2)。分离der调试器后,应用程序将正常响应。

如果我连接WinDbg并使用SOS命令!SyncBlk,则没有任何锁。 SOSEX命令!dlk报告“未检测到死锁” 。如果我使用F5运行该应用程序,它将正常运行。

我将不胜感激任何建议或评论。

谢谢!

图1 enter image description here

图2 enter image description here

等待线程 enter image description here

0 个答案:

没有答案