如何检测线程何时在黑莓中完成执行?

时间:2012-10-16 07:12:56

标签: multithreading blackberry

如何检测以下代码/线程何时在Blackberry中完成执行:

UiApplication.getUiApplication().invokeAndWait(new Runnable() {
        public void run() {              
            EventInjector.KeyEvent inject = new EventInjector.KeyEvent  
                    (EventInjector.KeyEvent.KEY_DOWN,Characters.ENTER, 0);
                      inject.post();
                      inject.post();
        }
    }); 

我可以在执行此线程时收到通知,以便我可以启动另一个线程吗? 提前谢谢。

2 个答案:

答案 0 :(得分:0)

您需要一个同步块,here是对它如何工作的简短描述。

“休眠”线程必须锁定一个对象,并在其上调用wait()。 另一个线程锁定同一个对象,并发送notify()或notifyAll()来唤醒第一个。

如果你明确地启动线程(不是在这种情况下),你可以简单地在它上面调用join(),并同步等待它完成。

- 编辑:在线程上使用join()

假设您已有一个可运行的对象:

Thread myThread = new Thread(myRunnable);
myThread.start();
doOtherStuff();
myThread.join();

但是如果出现问题,你就会陷入join()调用,因为BlackBerry没有超时的电话。

答案 1 :(得分:0)

通常,join()方法用于确定线程何时完成。调用join()通常会阻塞,因此请小心使用它。

Here是一个参考。