Amo*_*mos 2 delphi multithreading threadpool
我读了这篇关于创建线程池的文章:http: //delphi.about.com/od/kbthread/a/delphi-thread-pool-example-using-asynccalls.htm
我使用作者版本的原因是因为他所做的waitAll函数.这是正常的,除了调用waitAll阻止GUI从而失去使用线程的想法.什么需要改变的提示/提示?我通过电子邮件发送了作者,但他没有回复.
我想过添加Application.ProcessMessages; 在等待循环中,但我认为这不是一个好主意.谢谢
等待在GUI线程中完成所有任务是错误的方法.不要那样做.
而是安排每个任务向主线程发出完成信号.当主线程接收到最终完成信号时,它可以执行执行所需的任何任务.您可以计算要运行的所有任务.完成的每个任务都会向主线程发出信号,从而减少计数.当它达到零时,它们都完成了
或者创建另一个后台线程,其唯一任务是等待所有其他任务.这在后台线程中很好,因为它不会阻止UI.等待完成后,向UI线程发送消息.