[英]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.