我正在使用JFace编写一个简单的文件浏览器应用程序。应用程序的逻辑可以简化为:
所以在我的意见中,至少涉及2个线程:a)UI线程和b)获取文件夹内容的后台线程。
这里真正困扰我的是两个线程如何沟通,我必须“发明轮子”?更具体一点:
答案 0 :(得分:1)
我通常会做的是这样的事情:
// On double-click, start a new thread
new Thread(new Runnable()
{
@Override
public void run()
{
// Get your new data in this thread
final MyFancyDataObject data = SomeOtherClass.goAndGetMyData();
// Update the GUI, this is the safe way to do it from a non-gui-thread
Display.getCurrent().asyncExec(new Runnable()
{
public void run()
{
GuiClass.updateContent(data);
}
});
}
}).start();