为了让程序运行的时候不出现假死,或者能响应其他的程序。我在每行代码后边都加一个
application.ProcessMessages ;这样好不好,是正规的代码书写方式吗?

解决方案 »

  1.   

    虽然Application.ProcessMessages可以让程序接受并处理消息(包括WM_Paint等消息)使界面能响应用户操作,但问题是,有些特殊事件可能会再此触发,从而影响程序的执行流程。重画界面调用Repaint就可以了,一般来说我们使用多线程的方式执行一些耗时的任务。
      

  2.   

    我感觉这样写不正规.
    Application.ProcessMessages的意思,就是停下手中的活,先去处理一下新消息,然后继续回来干活.如果有很多消息要处理,又是长久的等待,会造成你程序中断异常,可能别人都没事,由于你程序的逻辑
    有错误,而造成运行你程序上面的数据出错.做人要自私一点,先把自己的活,做完了....在去让CPU做其它事,所以除非有必要去响应其它消息,一般CPU会自动会配好的.
      

  3.   

    application.ProcessMessages
    看一下Delphi帮助的解释:
    Interrupts the execution of an application so that it can process the message queue.
    中断应用程序的执行,以便它能够处理消息队列。因此,也就是说,一般在处理长时间的内容的时候,需要界面或者是其他需要相应的时候,我们
    才会调用它来处理。
      

  4.   

    你可以定义一个 Notify 方法来做代码和界面交互的问题!
      

  5.   

    看你的需要, application.processMessage  會嚴重影響程序流程的執行,特別是在使用TIMER控件下!!
    在可能的情況使用多線程會更容易控制