红鱼儿

Delphi Event Bus 2.1发布了

Delphi Event Bus 这个开源项目发布了,这是我用到的最好的开源项目,强烈推荐给大家。

前期也有写过这方面的文章,如果你还不知道,可以学习一下,这里不多说了,这个版本改动不大,但意义重大,使用了自己内部的线程池来管理自己的线程,支持Delphi 11.1,强烈建议升级。

我查看了代码,就是就是在TEventBus类中声明了一个FDebThreadPool:

  TEventBus = class(TInterfacedObject, IEventBus)
  strict private
    FDebThreadPool: TThreadPool;

然后呢,在调用订阅任务时:

      {$IF CompilerVersion >= 28.0}
      TTask.Run(LProc, FDebThreadPool);

这里,使用自己的线程池对象来执行线程任务了,注意,这里使用了系统的编译变量CompileVersion>=28,也就是最新的Delphi 11,才使用自己的线程池。关于编译变量CompileVersion对应的Delphi版本,可以参考这篇文章:Delphi编译器版本对照表及工具链

作者为什么要只在Delphi 11才使用自己的线程池呢?按我的理解,就是说明Delphi 11的TThreadPool对象才成熟吧,即然这样写,那对于使用Delphi 11以前版本的用户,没有必要升级了。

下面是我写的如何使用Event Bus的文章,可以复习下:

Delphi Event Bus入门
Delphi Event Bus进阶(一)控制订阅方法的线程模式
Delphi Event Bus进阶(二)GlobalEventBus是怎么来的?
Delphi Event Bus进阶(三)如何使用通道?

这是开源地址:

https://www.github.com/spinettaro/delphi-event-bus

 

posted on 2022-04-20 09:26  红鱼儿  阅读(909)  评论(0编辑  收藏  举报