0

我有一个接收事件的 Windows Delphi 应用程序,对于这些事件中的每一个,我想以并行方式运行任务(这样我就可以为以下事件做好准备)。通过全线程库的抽象有很多方法可以做到这一点。

问题是我的部分代码需要在接收到事件后立即执行(基本上是为了“解码”事件参数),而另一部分需要在没有发生任何新情况的情况下在几秒钟后执行相同的上下文。此行为应响应“仅在持续时间超过 3000 毫秒时才存储此新值,否则只需取消它”。因此,如果新事件以相同的上下文到达,我需要“取消”正在运行的任务(等待 3000 毫秒的任务)。我不能使用管道抽象,因为当第一阶段结束时,它会自动填充第二阶段队列,而不会询问我是否要取消它。

那可能吗?

谢谢你。

4

1 回答 1

1

听起来你需要一个Dictionary<Context, Event>where 事件还带有一个“created”时间戳属性,以及一个后台踏板,它不断检查这个字典中是否有事件条目elapsed time > 3000ms。传入事件更新时间戳和事件参数,直到线程检测到与条件匹配的条目,然后从字典中提取条目。

于 2015-02-17T10:24:56.087 回答