我想强制方法运行指定的时间.
public Response run(Request req){
//method runImpl must run during specified interval of time(for example for 10 secs)
Response res = runImpl(req);
return response;
}
Run Code Online (Sandbox Code Playgroud)
这样做的最佳方式是什么?谢谢!
runImpl 应该返回一个布尔值以使该代码正常工作。如果您不希望程序在完成之前停滞不前,您可能会希望在新线程中执行此操作(基本教程比比皆是)。
public Response run(Request req){
long lasttime=Sys.getTime();
int i=0;
while(i<10){
if(Response res = runImpl(req);){
return response;
}
if((Sys.getTime-lasttime)>1000){
i++;
lasttime=Sys.getTime();
}
}
return null;
Run Code Online (Sandbox Code Playgroud)
这会在每个处理器时刻运行,如果您希望它按一定间隔运行以及运行 10 秒,请使用:
public Response run(Request req){
long lasttime=Sys.getTime();
int i=0;
for(int i; i<(10000/yourchoiceinterval); i++){
if(Response res = runImpl(req);){
return response;
}
if((Sys.getTime-lasttime)>1000){
lasttime=Sys.getTime();
}
}
return null;
Run Code Online (Sandbox Code Playgroud)