如果满足以下条件,C#Winform UI会在一段时间后冻结

时间:2017-05-13 04:55:43

标签: c# .net wpf winforms freeze

我一直在这个问题上度过一些不眠之夜,我似乎无法弄明白为什么。我非常感谢社区的帮助。

我有一个Winforms应用程序,在执行了以下操作后经过一段时间(通常是5-10分钟)冻结:

1)当我按下一个按钮,启动一个单独的UI线程,创建一个WPF模式对话框和

2)当这个WPF模态对话创建另一个Winforms模态对话时

注意:主要Winforms应用程序在执行1)和2)之后的一段时间后冻结(在这些任务完成之后的某个时间并且与1相关联的线程被去除)。

另请注意:当1)和2)在一个单独的进程而不是线程中发生时,Winforms应用程序在一段时间后不会冻结。此外,如果2)没有发生,那么也没有应用程序冻结。此外,我尝试了2)空Winform模式对话框没有代码,它仍然导致问题

关于调试:

冻结后,在callstack上看到以下信息

1)主应用程序线程在DispatcherOperation.WaitOne()上等待,没有可用的上层调用堆栈

0 个答案:

没有答案