WPF应用程序冻结了Windows 7

End*_*der 7 .net c# wpf multithreading

.NET 3.5 WPF在Windows 7 64bit上有一个应用程序.我遇到拖动和移动主应用程序窗口时发生的奇怪的系统冻结问题.基本上整个系统冻结(UI),应用程序停止渲染.启动任务管理器(CTRL+ ALT+ DEL)会解冻系统和应用程序.

应用程序本身是一个交易应用程序,它在后台线程中处理大量消息.

有没有人遇到过这类问题?特别是任务管理器解锁冻结的奇怪之处.这种奇怪行为的原因是什么?

我几乎可以肯定它与将某些操作分派给UI线程有关.

End*_*der 3

问题是 WCF 服务死锁。类似的问题

在处理消息的服务中,传入消息必须按以下方式在 UI 线程上添加到集合中。

Action action = new Action(() =>
            {
                lock (_messagesLock)
                {
                    _messages.Remove(message);
                }
            });
            _dispatcher.Invoke(DispatcherPriority.Normal, action);
Run Code Online (Sandbox Code Playgroud)

改变

_dispatcher.Invoke(DispatcherPriority.Normal, action);
Run Code Online (Sandbox Code Playgroud)

_dispatcher.BeginInvoke(DispatcherPriority.Normal, action);
Run Code Online (Sandbox Code Playgroud)

解决了问题。