QWorker与XE 7的System.Threading对比

   Delphi/C++ Builder XE7版新引入了System.Threading单元来加入并行编程支持,而QWorker却是从作业(Job)的视角,面向作业和工作者(Worker)提供编程支持,同时QWorker也同时提供了TQForJobs来支持For并行编程支持。

    在QWorker里,我们将要处理的任务当做一个作业,将处理资源(线程)当作工作者,业务模型也就更简单。由于视角的不同,也为QWorker和系统的System.Threading带来一些不同:

    QWorker自动创建了一个全局的Workers对象,来提供给其它模块,从而简化了调度器的创建过程,只需要此入QWorker单元就可以直接使用。

    QWorker从作业管理的角度,提供了简单普通作业和周期性作业投寄函数(Post)、延迟作业(Delay)、定时作业(At)、信号(Signal)的管理,而XE7提供的System.Threading还是从传统的MP编程模型,接口复杂,用起来并不够简单。

    QWorker同时提供了TQJobGroup来提供一组作业之间的串行化和同步,使用起来相当方便,一个简单的例子:

 

分享到:

3 条评论

沙发空缺中,还不快抢~