簡體   English   中英

等待偵聽器完成

[英]Wait for listener completion

我將在這里純粹是概念性的。

我有一堂課,上面有一個監聽器,它可以執行某些操作 我有從該類構造的對象的整個數組

我也有一個靜態方法foo() ,該方法訪問該數組,然后執行其他操作

其他事情會觸發偵聽器,如果我在完成某件事之前不暫停其他 事情 ,則代碼將無法工作。 foo()知道何時觸發監聽器。

同樣,偵聽器具有直接調用在同一類之外構造的另一個對象上的偵聽器的功能。 foo()無法知道這種情況是否會發生或發生了多少次。

因此,如何強制foo()等待偵聽器執行,然后,如果偵聽器尚未觸發鏈式反應,則從中斷處繼續執行,否則等待任何觸發的偵聽器完成執行?

由於這是概念性的,很難確定確切的答案,因此我建議閱讀有關LocksConditions http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/locks/Condition .html 這些可能會為您提供所需的功能。

您可以考慮使用其他偵聽器:

  • foo()可以向您的“偵聽器”更改狀態的任何對象添加一個PropertyChangeListener,我們將其稱為模型。
  • 然后使用模型,通過在PropertyChangeSupport上觸發狀態已更改的通知方法來通知foo完成任務后。
  • 然后foo可以在完成操作后刪除其偵聽器。

暫無
暫無

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

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