我使用Delphi xe 5作为使用Indy来管理我的服务器应用程序的应用程序
每个客户端连接都有自己的会话,这是完美的
现在我需要在其中一个会话中以aysnc方式执行几项任务
当所有这些任务都完成后,控制权可以返回给调用者
我正在研究在我的程序中使用本地作用域线程池,它将把每个任务放到线程池中
我见过看起来很完美的TIdThreadMgrPool
如何等到我的所有主题完成后?
保
答案 0 :(得分:1)
Indy 9&#39}的TIdThreadMgrPool
组件(替换为Indy 10中的TIdSchedulerOfThreadPool
组件)不是通用线程池。它仅用作Indy的TIdTCPServer
组件的客户端线程池。没有选项等待活动线程完成运行,TIdTCPServer
在内部关闭时处理它。
Delphi有很多第三方通用线程池实现,例如OmniThreadLibrary。如果您使用的是XE7,则可以利用其新的Parallel Programming Library代替。