【发布时间】:2014-12-20 21:12:41
【问题描述】:
我正在开发 WPF/C# 桌面应用程序。
我有 2 种方法(让我们调用 Tasks
)。每个任务占用 10% 的 CPU,整个应用程序也占用 10%。所以,
当我在一个实例中运行这两个任务时,它会划分 CPU 利用率(每个 5%,因此显然进程会变慢)
当我运行我的应用程序的 2 个实例并在每个应用程序上运行一个任务时。一切都很好。 2 个任务的总利用率为 20%。
现在的问题是:如何在我的应用程序的一个实例中使用 20% 的 CPU 利用率?
我无法添加代码,因为创建我的应用程序的MCVE 非常复杂。
完整场景:
它是一个人脸识别应用程序。第一个 30 fps 的相机使用 10% 的 CPU。当第二个摄像头启动时,两个 fps 都下降到 15 fps,而总应用程序利用率仍然是 10%(它不会增加但会减慢任务,就像 fps 一样)。
当我运行 2 个应用程序实例时,每个实例都有 1 个摄像头。两个实例的 FPS 均为 30,CPU 利用率总计为 20%。这就是整个场景!
【问题讨论】:
-
了解如何控制 fps 很重要。是否有任何轮询或事件触发?
-
每次新帧到来时,它都会触发一个事件,然后在事件处理程序中传递给人脸检测和识别方法,最后将图像分配给
imagebox
。 -
您是否同步处理您的事件?请给我们看一点代码。
-
好的。我尝试创建一个示例
标签: c# wpf parallel-processing cpu-usage