在一个线程中,我将事件排队到主线程的上下文中运行,如下所示:
TThread.Queue(nil, procedure begin AddDataToChart(SomeData) end);
现在在某些时候我需要将这些事件出列,因为匿名方法中解决的组件被破坏,因此不应该接收更多数据。我知道我可以通过调用TThread.RemoveQueuedEvents从TThread合并器中取消事件。不幸的是,这似乎只适用于Thread方法,但不适用于排队的匿名方法。所以我的问题是如何从队列中删除我的匿名方法。
答案 0 :(得分:1)
TThread
没有公开任何方法来删除排队的匿名过程。唯一的选择是使用专用的TThread
对象对匿名过程进行排队(在该对象上调用非class
版本的TThread.Queue()
方法,或者将该对象作为{{1}传递AThread
class
版本TThread.Queue()
}的参数,然后您可以将该对象传递给TThread.RemoveQueuedEvents()
对象作为输入的TThread
方法。