簡體   English   中英

刪除偵聽器后,可以再在該偵聽器上調用一次事件嗎?

[英]When a listener is removed, is it okay that the event be called on that listener one more time?

大多數人使用ConcurrentLinkedQueue或CopyOnWriteArrayList來收集偵聽器,並在發生事件時通知它們。 這樣做的缺點是,監聽者可能會在自己未注冊的情況下獲得通知。 如果管理器(集合,...,給它命名)正在迭代偵聽器的集合並且某些偵聽器在該迭代期間注銷了自己,則會發生這種情況。

因此,“刪除偵聽器”合同被打破。 您認為這是一個問題嗎?

即使您檢查了偵聽器是否仍已注冊,在多線程環境中,您仍不確定在調用它之前仍在注冊它。 即使在非多線程情況下,標准實現也是在副本上工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM