之前我推倒重來...如何處理順序調用事件處理程序?
這只是一個例爲說明問題 - 讓我們說你有一些數據的收集和前端這顯示集合的一個項目後端。
在後端我有ItemIndex - 每當它發生變化,它就會觸發OnScroll事件。
我也有AddNewItem方法,它在集合的末尾添加新項目。該方法的結尾調用OnNewItem事件處理程序。
這裏是catch-in AddNewItem我必須改變ItemIndex,它會觸發OnScroll。 (!)OnScroll和OnNewItem的兩個接收者之一,如果前端顯示選定的項目。
在這種情況下,它被稱爲兩次(不好)。一種解決方案是改變item_index而不是ItemIndex,並且這樣防止OnScroll,但我不喜歡它,因爲ItemIndex不再作爲黑盒子。
是否有任何已建立的順序點火事件模式,並且只發送「重要」事件(這裏是:OnNewItem重寫OnScroll)?我的想法是定義一個事件範圍,然後不是直接發送事件,而是將它們註冊爲發送,並在範圍結束時對它們進行排序併發送所需的範圍。
一般 - 問題 - 我應該如何處理潛在的順序事件觸發。使用內部消息來避免發送冗餘事件?忽略開銷? ...?
就像那個問題一樣。不知道這個我自己。我的解決方案始終是直接設置字段,或者有一些不會觸發事件的ItemIndexInternal。 – 2011-05-22 16:21:35
也是我的,但是如果我的程序變得越來越大,這種方法將會成爲問題。 – greenoldman 2011-05-22 16:46:58