我正在使用 Java ICMP ping 功能 ping 网关。为了执行快速 ping,我使用了 ExecectorService,它创建了用于 ping 的线程。在地址被 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();
}}