Java Timer 定时器执行定时任务(RCP启动进度条)


public void loginBefore() {
try {
url = new URL(PATH_URL);
} catch (MalformedURLException e) {
return;
}
isStart = false;
timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
check();
}
}, 0, 5*1000);// 5 sec
showProgressDialog();
}


private void check() {
try {
logger.info("check............");
BufferedReader reader = new BufferedReader(new InputStreamReader(
url.openStream()));
String str = reader.readLine();
if (isStart) {
return;
}
if (str.matches("Started")) {
logger.info("Web Server is started.");
isStart = true;
timer.cancel();//Terminate the timer thread
return;
}
} catch (Throwable t) {
return;
}
}

private void showProgressDialog() {
ProgressMonitorDialog progress = new ProgressMonitorDialog(null);
progress.setCancelable(true);
try {
progress.run(true, true, new IRunnableWithProgress() {
public void run(IProgressMonitor monitor)
throws InvocationTargetException {
monitor.beginTask("Procressing......",
IProgressMonitor.UNKNOWN);
while (true) {
if (isStart) {
break;
}
if (monitor.isCanceled()) {
Display.getCurrent().asyncExec(new Runnable() {
public void run() {
PlatformUI.getWorkbench().close();
}
});
isStart = true;
break;
}
Display.getCurrent().readAndDispatch();
monitor.worked(1);
}
monitor.done();
}
});
} catch (InvocationTargetException e) {
return;
} catch (InterruptedException e) {
return;
}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值