我有一个计算某些东西的线程并生成一个2 d数组。线程完成后,我需要访问这个2 d数组的值。我怎么能这样做
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。一旦线程完成,我如何从主类(类似全局变量)
访问它答案 0 :(得分:-1)
你应该做的是使用done()
方法从线程中收集任何结果。基本上你现在打印第一个值,你可以将它转移到另一个线程以在那里使用它。
请注意在EDT中调用done()
,因此如果您需要对其进行密集操作,则需要另一个线程。