为什么我的程序在最小化/背景中变得紧张?

时间:2014-06-19 01:00:31

标签: .net vb.net winforms optimization com

我正在编写一个通过其COM API与CAD软件包软件交互的小程序。 这个程序是用VB.net编写的,使用WinForm并以.NET Framework 4为目标。

基本上我的程序(按照执行的顺序):

  1. 接收并解析传入的串行数据
  2. 根据解析的串行数据
  3. 更新一些GUI控件(文本框/图像)
  4. 使用已解析的序列数据作为参数调用某个API方法,此API方法处理CAD模型的一些几何操作(即移动或更改维度)
  5. 这些例程包含在单个while()循环中,并使用BackgroundWorker实现,因此GUI将保持响应。

    当程序当前处于前台时(它不是全屏),程序正常工作。我可以看到CAD软件中的几何变化运行顺畅。

    然而,一旦程序最小化并且我切换到CAD软件窗口,几何变化就开始滞后/抖动。

    将焦点切换回我的程序,所有内容都会再次运行。

    为什么会这样?可能是最小化我的应用程序获得较少的处理器优先级?

    我该如何解决这个问题?

    当程序在后台时,串口解析/ GUI控件更新会被暂停吗?(即在更新GUI控件之前,API调用被阻止)

    我应该从主循环中提取这些GUI更新吗?


    如果您认为需要更多信息,请告诉我,我会相应地更新我的问题。

    在此先感谢,我在编程世界方面相当新,所以请耐心等待。 :)

1 个答案:

答案 0 :(得分:0)

可能是Windows设置(检查系统首选项),其性能设置为“活动”应用程序(客户端计算机)与“所有应用程序同等”(服务器)。