我最近在设置一个这样的程序;有两个UI线程在同时运行。 线程1为主线程, 而线程2呢,是专门用来处理UI线程1当中的窗口的。
比如说,UI线程1中的主窗口大小发生了改变, 然后在共有的消息队列中,添加大小改变消息。
然后呢。在UI线程2 的 Run() 消息循环中,我让它查看共有的消息队列,如果有消息就去处理它。这样做的目的是为什么呢?其实很简单只是为了减少主UI线程的负担,提高窗口的刷新速度。

解决方案 »

  1.   

    其实你说的方法我当然知道。目前我用的也是这样。只改变的窗口。
    但是,即使是QQ 当你拖动窗口的时候,它也一样会有点卡。
    但是,你拖动windows 的文件夹的时候,你可以看到速度之快
      

  2.   

    这样做能有多大效果呢?
    你所说的卡,我想应该是CUP使用率过高导致的.
    问题是,开多线程能降低CPU使用率吗?
      

  3.   

    确实牛逼,从系统的消息队列里读出消息再放入另外一个队列,排两次队再处理,如果想快,可以建议你把IO操作跟界面分离,或者用异步IO,单纯的处理消息是不会导致你的界面卡的。。OK?