delphi循环等待并继续处理其它消息(转)

应用环境:在某些时候,系统需要有一个统一的过程去分配某些资源:如:动态分配Tadoquery对象,为了防止频繁创建Tadoquery对象而浪费系统的性能与资源,请看如下代码:


这里的FLockQueryList是循环等待标记,如果一个进程正在执行这个过程的,同时另外一个进程也执行这个过程,按先进先出的原则,前面的过程没执行完,后面的就继续在等待。大家可以使用下面的方法来测试:

在一个窗体中放2个按钮:演示代码如下:


你会发现一个很有趣的现象:你点几下按钮1,窗体的caption都不会有变化的,因为进程在等待。你点一下按钮2时,第一个进程会执行,窗体的caption则会显示0+,你不断地点,窗体的caption就会不断地在之前的caption基础上累加0+1+2+....

就是说,你没点一次按钮2的时候,你就开一下你点了按钮1所执行的东西。大家认真想下,应该有很不错的应用的喔!!

posted @ 2010-08-27 14:07  @小宝  阅读(1450)  评论(0编辑  收藏  举报