3
從一個線程我排隊事件在主線程這樣的環境中運行中:從TThread類隊列中刪除匿名方法
TThread.Queue(nil, procedure begin AddDataToChart(SomeData) end);
在某些時候現在我需要離隊這些事件,因爲這是該組件在匿名方法中的地址被破壞,因此不應該接收更多的數據。我知道我可以通過調用TThread.RemoveQueuedEvents從TThread synclist出列事件。不幸的是,這似乎只適用於線程方法,但不適用於排隊的匿名方法。所以我的問題是如何從隊列中刪除我的匿名方法。
你可以在調用'AddDataToChart'之前進行驗證檢查嗎?一個簡單的全局(範圍內)布爾值就足夠了。 –
@L RD RD我真的想過這個,但發現這個解決方案有點骯髒。我認爲刪除排隊的事件會更清潔,因此不會首先運行AddDataToChart代碼。 – iamjoosy
也許你可以用OTL等其他線程庫做得更好?或者你可以制定一個專門的'TThreadQueue'這些匿名方法,並從Application.OnMessage –