我有一個事件,我註冊事件處理程序。如何避免多次註冊事件
event Action OnGameList;
然後例如我到達像這樣的代碼:
backend.OnGameList += ProcessGameList;
backend.GetGameList(); //this will trigger the above event.
每個i達到這個代碼時間
,該處理程序中的溶液。這意味着第二次將被調用兩次。當然 我可以在這樣的功能將其刪除:
backend.OnGameList -= ProcessGameList;
,但我有一種感覺,有這類問題更好的解決方案。
沒有更多的代碼很難說。顯而易見的答案是隻在代碼中添加事件一次,而不是重複調用,但很難給出更具體的建議,而不理解爲什麼您已經多次添加它。 – Chris 2014-10-08 12:51:39
您可以先安全地移除,然後重新添加。否則,你將不得不檢查它是否已經註冊。 – 2014-10-08 12:58:58
我必須承認,如果我的設計只被我使用,並且我只想附加處理程序一次,即使附加例程被調用了n次(可以說每次自定義彈出窗口都會出現),我總是使用 - =之前+ =。它從未墜毀,並始終幫助。 IIRC。 – icbytes 2014-10-08 13:03:35