コード例 #1
0
ファイル: ManagerThread.java プロジェクト: lilongthinker/MPS
 public void invoke(IManagerCommand command) {
   if (isManagerThread()) {
     myThread.processCommand(command);
   } else {
     schedule(command);
   }
 }
コード例 #2
0
ファイル: ManagerThread.java プロジェクト: lilongthinker/MPS
 public void invokeAndWait(final IManagerCommand command) {
   if (isManagerThread()) {
     myThread.processCommand(command);
   } else {
     final CountDownLatch countDown = new CountDownLatch(1);
     schedule(
         Commands.fromClosure(
             new _FunctionTypes._void_P0_E0() {
               public void invoke() {
                 try {
                   command.invoke();
                 } finally {
                   countDown.countDown();
                 }
               }
             },
             new _FunctionTypes._void_P0_E0() {
               public void invoke() {
                 try {
                   command.cancel();
                 } finally {
                   countDown.countDown();
                 }
               }
             }));
     try {
       countDown.await();
     } catch (InterruptedException ignore) {
     }
   }
 }
コード例 #3
0
ファイル: ManagerThread.java プロジェクト: lilongthinker/MPS
 public ManagerThread() {
   myThread.start();
 }