我在Blackberry的invokeLater方法中有一个线程,如下所示:
startButton.setChangeListener(new FieldChangeListener() {
public void fieldChanged(Field arg0, int arg1) {
UiApplication.getUiApplication().invokeLater(new Runnable() {
public void run() {
Thread thread = new Thread(){
public void run() {
uploadFile();
}
};
thread.start();
}
});
}我有一个线程,因为我想在后台运行这个函数,并希望在它执行其工作的同时能够做其他事情。我想知道的是这是不是一个好的方法。在这种情况下,我真的需要invokeLater吗?
发布于 2012-10-19 01:02:43
简短的回答是:不。
长长的答案:
InvokeLater将Runnable放在事件队列中,这样,当事件循环看到Runnable时,它将在事件线程上执行它。由于您在FieldChangeListener的fieldChanged方法中调用invokeLater,因此您将从事件线程中调用它。除非你想把线程的启动延迟到某个未知的时间,否则你不需要使用invokeLater。
https://stackoverflow.com/questions/12959296
复制相似问题