1

如何检测以下代码/线程何时在 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();
        }
    }); 

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

4

2 回答 2

0

你需要一个同步块,这里是它如何工作的简短描述。

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

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

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

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

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

但是,如果出现问题,您将被卡在 join() 调用上,因为 BlackBerry 没有此调用的超时。

于 2012-10-16T08:57:43.910 回答
0

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

是一个参考。

于 2012-10-16T10:16:13.037 回答