论坛首页 Java企业应用论坛

如何处理事件模型中的循环?

浏览 1823 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-10-05  
请问在设计一个事件模型的时候如何检测事件无休止的循环触发?比方下面这个例子就会不停的执行直到堆栈溢出。这算是简单的情况,如果碰到“event1-event2-event3-event4-event1-event2-event3-event4-event1-...”这样的情况那就更麻烦了。

java 代码
 
  1. public class TestCircleEvent {  
  2.   
  3.     public static void main(String[] args) {  
  4.         EventManager.registerEvent("event1");  
  5.         EventManager.registerEvent("event2");  
  6.   
  7.         EventManager.addListener("event1"new EventListener1());  
  8.         EventManager.addListener("event2"new EventListener2());  
  9.   
  10.         EventManager.raiseEvent("event1"null);  
  11.     }  
  12. }  
  13.   
  14. class EventListener1 implements EventListener {  
  15.   
  16.     public void execute(EventObject object) {  
  17.         try {  
  18.             System.out.println("event1 occured.");  
  19.             Thread.sleep(1000);  
  20.             EventManager.raiseEvent("event2"null);  
  21.         } catch (InterruptedException e) {  
  22.             e.printStackTrace();  
  23.         }  
  24.     }  
  25. }  
  26.   
  27. class EventListener2 implements EventListener {  
  28.   
  29.     public void execute(EventObject object) {  
  30.         try {  
  31.             System.out.println("event2 occured.");  
  32.             Thread.sleep(1000);  
  33.             EventManager.raiseEvent("event1"null);  
  34.         } catch (InterruptedException e) {  
  35.             e.printStackTrace();  
  36.         }  
  37.     }  
  38. }  
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics