c#-由进程“系统”引起的高CPU使用率

我正在编写WPF应用程序.我在某些窗口中使用了BitmapCache,如下所示:CacheMode = new BitmapCache() {EnableClearType = false,RenderAtScale = 2,SnapsToDevicePixels = false; }然后:运行我的应用程序,CPU使用率...

我正在编写WPF应用程序.我在某些窗口中使用了BitmapCache,如下所示:

CacheMode = new BitmapCache() {
            EnableClearType = false,
            RenderAtScale = 2,
            SnapsToDevicePixels = false; }

然后:

>运行我的应用程序,CPU使用率是正常的.
> Ctrl Alt Del,显示任务管理器,名为“系统”的进程显示CPU使用率高.

Process Explorer显示了由以下两个线程引起的问题:

ntoskrnl.exe!WheaAttemptPhysicalPageOffline+0x350
dxgmms1.sys!VidMmInterface+0x26500

我使用了英特尔高清显卡.

这是WPF,直接驱动程序还是图形驱动程序的错误?有人知道吗

解决方法:

“系统”进程是伪造的进程,它显示在环0中运行的Windows代码的统计信息.例如,设备驱动程序位于其中. Dxgmms1.sys是DirectX的内存管理器. WPF使用DirectX渲染图形.位图可能会占用大量内存.

因此,看到使用位图的WPF应用程序在DirectX相关的设备驱动程序中花费大量的CPU时间并不是什么难事.英特尔高清显卡是图形加速器的最便宜的底层实现.在AMD或NVidea视频卡上花费五十美元可能是一个快速解决方案.不要求WPF缩放位图或限制它的渲染速率(因为可视树已失效)可能是另一种快速解决方案.

本文标题为:c#-由进程“系统”引起的高CPU使用率

基础教程推荐