[英]how to get variable value from a java thread
我有一个线程,可以计算某些东西并生成一个二维数组。 线程完成后,我需要访问此2d数组的值。 我怎样才能做到这一点
SwingWorker<Integer, Void> worker = new SwingWorker<Integer, Void>()
{
Object[][] valueMatrix = null;
@Override
public Integer doInBackground()
{
try
{
valueMatrix = doChemicalSynonyms(termsArray_1, termsArray_2, mView.getSaveFilepath(), false, mView.getSheetName(), mView.getCategoryName(), mView.includePMIDs());
}
catch (Exception e)
{
e.printStackTrace();
return -1;
}
return 0;
}
@Override
public void done()
{
System.out.println(valueMatrix[0][0]);
}
};
worker.execute();
doChemicalSynonyms函数生成valueMatrix。 线程完成后,如何从主类访问它(类似于全局变量)
您应该做的是使用done()
方法从线程中收集任何结果。 基本上,现在您正在打印第一个值,您可以将其传输到另一个线程以在其中使用它。
请注意,在EDT中调用了done()
,因此,如果需要对其进行大量操作,则需要另一个线程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.