我现在编写的程序是一个管理工具,用于简单的监测服务器的性能,包括cup、mem等等
所以以前我使用两个OnTimer函数,并定义一个数组,其中一个OnTimer负责从服务器上获取信息,并把信息存入数组,另外一个OnTimer函数则从数组中读取数据,并界面显示。这里有一个问题,那个获取服务器信息的OnTimer获取速度很慢,导致我整个界面总隔一段时间就没有相应,导致界面无法操作,有兄弟告诉我可以使用OnIdle和peekMessage改变界面的相应速度,而不使用ONTimer和多线程,现在不知道各位老大有没有好的思路,或者OnIdle和peekMessage的使用方法。
说白了,就是一个读取数据,反应很慢,另外一个显示数据,被读取数据搞得很慢,请诸位指教如何解决这个问题。也可以提高界面的优先级,把读取数据的优先级降低,无论何时都要保证界面的响应速度。

解决方案 »

  1.   

    单独启动一个线程负责读取数据,在OnTimer中只负责刷新界面
      

  2.   

    可以提高界面的优先级,把读取数据的优先级降低
    ------------------------------------------------
    如果就一个线程那提高和降低谁的优先级啊
    可以把两个TIMER 间隔一段时间启动,比如两个TIMER 的执行想差几百毫秒,着个间隔得看你的程序情况设,然后要有一个缓冲区,获取数据的TIMER将获取的数据写进缓冲区,写控件的TIMER在从缓冲区中读出防到控件中去
    这里存在的问题是,两个TIJMER可能发生读写冲突,造成数据错误
    还是用线程好,可以同步一下,旧可以解决冲突的问题