delphi 我新手 我通常在一个类里写很多代码 为了让程序运行的时候不出现假死,或者能响应其他的程序。我在每行代码后边都加一个application.ProcessMessages ;这样好不好,是正规的代码书写方式吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 虽然Application.ProcessMessages可以让程序接受并处理消息(包括WM_Paint等消息)使界面能响应用户操作,但问题是,有些特殊事件可能会再此触发,从而影响程序的执行流程。重画界面调用Repaint就可以了,一般来说我们使用多线程的方式执行一些耗时的任务。 我感觉这样写不正规.Application.ProcessMessages的意思,就是停下手中的活,先去处理一下新消息,然后继续回来干活.如果有很多消息要处理,又是长久的等待,会造成你程序中断异常,可能别人都没事,由于你程序的逻辑有错误,而造成运行你程序上面的数据出错.做人要自私一点,先把自己的活,做完了....在去让CPU做其它事,所以除非有必要去响应其它消息,一般CPU会自动会配好的. application.ProcessMessages看一下Delphi帮助的解释:Interrupts the execution of an application so that it can process the message queue.中断应用程序的执行,以便它能够处理消息队列。因此,也就是说,一般在处理长时间的内容的时候,需要界面或者是其他需要相应的时候,我们才会调用它来处理。 你可以定义一个 Notify 方法来做代码和界面交互的问题! 看你的需要, application.processMessage 會嚴重影響程序流程的執行,特別是在使用TIMER控件下!!在可能的情況使用多線程會更容易控制 ADO数据库问题,语法问题 delphi 带源码 关于image控件的小问题 高手帮帮忙把!!! 关于界面的问题 一个关于线程的问题 送200分,请大家推荐几个速度较快的ASP空间。 一个菜鸟简单的delphi 问题 当我用Grid来浏览数据到最后一条数据后,再用方向键望下浏览,当关闭系统的时候,就会出错。帮忙啊 "c/s" come on! 串口通信问题:怀疑MSCOMM的接收数据能力有问题!!! oracle表锁的问题 关于Virtual Listview的问题
Application.ProcessMessages的意思,就是停下手中的活,先去处理一下新消息,然后继续回来干活.如果有很多消息要处理,又是长久的等待,会造成你程序中断异常,可能别人都没事,由于你程序的逻辑
有错误,而造成运行你程序上面的数据出错.做人要自私一点,先把自己的活,做完了....在去让CPU做其它事,所以除非有必要去响应其它消息,一般CPU会自动会配好的.
看一下Delphi帮助的解释:
Interrupts the execution of an application so that it can process the message queue.
中断应用程序的执行,以便它能够处理消息队列。因此,也就是说,一般在处理长时间的内容的时候,需要界面或者是其他需要相应的时候,我们
才会调用它来处理。
在可能的情況使用多線程會更容易控制