我使用以下库编写了WPF .NET应用程序(.NET 4.5):
我使用2个定时器:
System.Threading.DispatcherTimer
(每200毫秒滴答)
System.Timers.Timer
(每秒滴答)
Application.Current.Dispatcher.BeginInvoke
)该应用程序在约50台Windows 7计算机上运行(从早上7点到下午5点),没有任何问题。
仅在1台Windows 7计算机上,它只是随机冻结,CPU占用率高且唯一活动线程:WgxConnection_ShouldForceSoftwareForGraphicsStreamClient
Windows事件日志中没有条目,也没有触发此事件的用户事件。
我找不到任何有关此事的信息WgxConnection...
有没有人有任何想法?
编辑:
刚刚找到该片段“UnsafeNativeMethods.WgxConnection_ShouldForceSoftwareForGraphicsStreamClient();”在MediaSystem.cs中: https://referencesource.microsoft.com/#PresentationCore/Core/CSharp/System/windows/Media/MediaSystem.cs
- > wpfgfx_v0400.dll
也许“RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly;”可以改变行为吗?
答案 0 :(得分:0)
如果没有看到代码示例,很难识别问题。
以下几点,我能想到
答案 1 :(得分:0)
您的调度计时器也可用于完成系统计时器的工作。
只需在检查if(timer % 1000 == 0)
时粘贴if模数语句,然后调用异步数据请求函数。
关于主要问题,找出一台计算机上的不同之处,是使用相同的显卡,驱动程序怎么样?
您是否在程序的任何位置使用缩放或其他图形效果?
我的想法是,某台驱动程序问题正在该机器上发生,它试图制定一个效果并且该系统上的图形不具备,并且由于某种原因,软件渲染无法启用它然后卡住尝试做这种效果在无限循环中。