Hol*_*rwa 3 delphi omnithreadlibrary
我正在创建一个OmniWorker-Task来进行一些数据处理.
到目前为止,该任务能够从/向其他任务接收和发送消息.
现在我需要为这个任务实现main函数.此函数将连续运行并执行数据处理,而消息将修改其行为.
但是我在哪里放这个主要功能?
是否有类似OmniWorker的"执行"方法,我需要实现什么?
实际上,TOmniWorker并不真正支持'monolythic execution block + messaging'成语.TOmniWorker背后的整个想法是,大多数代码都是在消息处理程序中执行的(当然还有从它们调用的代码中) - 就像在典型的单线程Delphi应用程序中一样.
您只需发送一条特殊消息("开始!")并在消息处理程序中开始执行,但请记住,在执行消息处理程序时不会处理消息.[更具体一点 - 您可以发送它们但是如果您想要接收它们,则必须通过Task.Comm.Receive手动执行.]这并不是意料之外的,因为每个TOmniWorker都是单线程环境而且它是执行消息处理程序,它不能做任何其他事情.