0
私は数多くのスレッドでBufferedImageをレンダリングしています。私がこれらのスレッドを開始するとき、私はEvent Dispatch Threadでwaitを呼び出して、すべてのレンダリングスレッドが通知信号を送信したときにのみ実際にイメージを描画するようにします。イベントディスパッチスレッドを待たずにイメージをレンダリングしますか?
synchronized (this)
{
while(threadsCompleted<RENDERING_THREADS){
try{
this.wait();
}catch (InterruptedException e){
e.printStackTrace();
}
}
threadsCompleted = 0;
}
g2.drawImage(image);
、これは、スレッドの実行が終了するときに何が起こるかです::
これは、EDTで何が起こるかである
synchronized (MyPanel.this){
threadsCompleted++;
MyPanel.this.notify();
}
私の質問は:上の呼び出しを作るための方法がありますdrawImageは実際にEDTの作業を停止せずにスレッドが終了するのを待ちますか?これらのミリ秒でレンダリングが進行するように、ユーザーはUIと実際にやりとりすることができるので、Event Dispatch Thread?
移動を独自のスレッドに、 SwingUtilities invokeLater Runnable runメソッドを使用してdrawImageメソッドを呼び出します。 –