我是实现流程:
    1.客户端通过Timer 100毫秒截屏一次,转为jpg图片,再转为byte[]
    2.通过socket把byte[]传给服务器
    3.服务器把byte[]转为图片显示通过测试,发现一个大问题:只要监控桌面的话,客户端CPU使用率都在30%左右。(1G内存,Inter 双核 主频:1.6  总频:1M)有什么方法可以降低cpu使用率?

解决方案 »

  1.   


    private void timer1_Tick(object sender, EventArgs e)
            {
                Thread t = new Thread(new ThreadStart(this.PrintImage));
                t.Start();
            }PrintImage()  
    -->> 包含截图,转换,和发送但是cpu使用率还是那么高。。
      

  2.   

    Tick是超过计时器间隔时发生,你这样岂不是100MS要创建一次线程了吗
      

  3.   

     1秒的话  cpu只有3%
     但是监控效果不是就打折扣了吗?
      

  4.   


    Thread t = new Thread(new ThreadStart(BeginPrintImage);
    t.IsBackGroud = true;
    t.Start();
    private void BeginPrintImage()
    {
       while (true)
       {
          PrintImage();
          Thread.Sleep(100);
       }
    }把它写出windows服务,使用后台线程来完成。
      

  5.   


    我没有写成windows服务,cpu使用率比原来下降了一半。但是还有15%左右。
    写成windows服务会比较好吗?
    我没接触过windows服务,不知道要知道弄。如果有例子的话,可以发一个参考下吗。
    谢了!