我有一个基于MVC的程序,它从互联网获取数据,并开始解析它,当然在我们需要线程的网络程序中。如何让我的程序等待某个特定的线程并且不影响我的GUI的交互性?
我有一个类从互联网阅读下面这样的数据:
public class WebReader extends Thread
{
private String result="";
public String getResult()
{
return result;
}
public void setResult(String t)
{
result = t;
}
public WebReader(get args here)
{
//initializing
}
public void getData()
{
//call the big getData(args);
}
public void getData(Sargs)
{
//magics happens here
}
@Override
public void run()
{
//call getData()
}
}
和使用我的模型内该类我一直在使用下面的代码:
//inside a function
WebReader wr = new WebReader(args);
wr.start();
wr.join();
String s = wr.getResult();
this.parseData(s);
我知道用join()我将线程加入当前线程,通过这样做,我的GUI将卡住,直到完成结果来自网络。但我想确定WebReader类已经先读取了数据,然后继续进行,我应该怎么做?
您可以让WebReader线程在准备就绪(回调)时通知UI。另请参阅http://stackoverflow.com/questions/1476170/how-to-implement-callbacks-in-java – 2012-01-01 20:32:42