我有一个应该与SWT GUI线程同步运行的线程,但如果在10秒后没有完成,则超时会终止该线程.编辑:我需要保持与Java 1.4兼容.
线:
private boolean isFinished;
(...)
isFinished = false;
Thread t = new Thread ("getShellsThread") {
public void run() {
try {
logger.debug("aquirerootcont SWT entered - " + Thread.currentThread().toString());
(...)
} finally {
isFinished = true;
logger.debug ("hasShells is Finished!");
}
}
}
Run Code Online (Sandbox Code Playgroud)
超时代码:
long startTime = System.currentTimeMillis();
long timeWaited;
((Display)displays.get(i)).asyncExec (t);
while(!isFinished){
timeWaited = System.currentTimeMillis() - startTime;
logger.debug("aquireRootContainer: timeWaited: " + timeWaited);
if (timeWaited > 1000) {
logger.debug(t +" Name: " + t.getName()+" took to long and …Run Code Online (Sandbox Code Playgroud)