0

Java ICMP ping 機能を使用してゲートウェイに ping を実行しています。高速 ping を実行するために、ping 用のスレッドを作成する ExectorService を使用しています。アドレスが ping された (またはされない) 後、ping 後に Jprogressbar を更新したいと考えています。このコードは機能していますが、ジョブ (ping スレッド) が完了する前に Jprogressbar を更新します。仕事が終わったらjprogressbarを更新したい。

private int NUM_THREADS = Runtime.getRuntime().availableProcessors();
ExecutorService exec = Executors.newFixedThreadPool(NUM_THREADS);
public void run() {
    int JProgressBarValue = 0;
    for (;GateWayKey<=GateWayKeyStop;GateWayKey++){
        ip="192.168."+GateWayKey+".1";
       exec.submit((new PingTask(ip,GateWayKey,true,scanFrameRefrence,ttl)));
       JProgressBarValue=(GateWayKey/GateWayKeyStop)*100;
       scanFrameRefrence.progressBar.setValue(JProgressBarValue);
       scanFrameRefrence.progressBar.repaint();
    }}
4

1 に答える 1