1楼有理
不用时间长了,从threa启动开始就慢吧
1秒钟就大面积刷了两次画面,这1秒内还要互斥的响应用户操作
肯定体感比较慢

解决方案 »

  1.   

    你的 while 循环里都只有一条 Sleep 语句,别的代码不都注释掉了吗,也会变慢?谁让你滥用线程呢?说告诉你说用线程是为了让程序执行更快?
      

  2.   

    刚启动时不慢,没有一秒刷两次啊,只是执行完绑定操作后sleep了500毫秒,因为我要去不断获取新数据显示到界面
      

  3.   

    你重要的是找到程序到底慢在哪里,这种方式是经常用到的:private void method()
     {
          while(begin)
          {
              DateTime dt1 = DateTime.Now;
              //查询数据库,获取10张图片
              DateTime dt2 = DateTime.Now;
             //绑定到listview展示图片
              DateTime dt3 = DateTime.Now;
             //绑定Datagridview
               DateTime dt4 = DateTime.Now;
              long l1 = (dt2 - dt1).TotalMillionSeconds;
              long l2 = (dt3 - dt2).TotalMillionSeconds;
              long l3 = (dt4 - dt3).TotalMillionSeconds;
              Console.WriteLine("查询数据库用时" + l1 + "毫秒, 绑定ListView用时" + l2 + "毫秒,绑定DataGridView用时" + l3 + "毫秒");
             Thread.Sleep(500);
         }
     }
      

  4.   

    在线程里绑定数据到UI控件,不报错?
    用了委托,还是只是简单的使用了CheckForIllegalCrossThreadCalls = false;??
    建议这种实时性不需要太高的显示,把通信和显示分开,不要混杂在同一个逻辑里
      

  5.   

    不像是啥大问题,如果已经排除内存溢出的话
    你的list是递增的还是 每次都清空?要是递增的,有可能是你界面显示逻辑有问题,刷新有问题。其实还有一种可能就是,没有问题。
    长时间不响应UI 系统会自动收回一部分资源,只留少部分资源保证基本功能。
    重新响应UI 系统会重新分配内存,再加上在此时间内,你还在不断的刷新,短时间内,就会感觉卡卡的。1你自己测试下,把刷新间隔加大,看看效果
    2没事就点几下,看看长时间还卡不
    3.卡了也不怕,多等一会看看能恢复正常不。