【发布时间】:2015-02-16 16:24:09
【问题描述】:
我有一个接收事件的 Windows Delphi 应用程序,对于这些事件中的每一个,我想以并行方式运行一个任务(这样我就可以为接下来的事件做好准备)。通过全线程库的抽象有很多方法可以做到这一点。
问题是我的部分代码需要在收到事件后立即执行(基本上是为了“解码”事件参数),而另一部分需要在几秒钟后才在什么都没有的情况下执行新的发生在相同的上下文中。 此行为应响应“仅在持续时间超过 3000 毫秒时才存储此新值,否则只需取消它”。 因此,如果新事件以相同的上下文到达,我需要“取消”正在运行的任务(等待 3000 毫秒的任务)。 我不能使用管道抽象,因为当第一阶段结束时,它会自动填充第二阶段队列,而不会询问我是否要取消它。
这可能吗?
谢谢。
【问题讨论】:
标签: multithreading delphi omnithreadlibrary