我有一个全局变量和一个ArrayList
boolean resultOk;
....
ArrayList<byte[]> payloadList;
...
for循环:
for(int i=0; i<payloadList.size(); i++){
...
}
我希望每个人都在for循环中,它会在5s(超时)中完成。如果在5s中,“resultOk”为真,它将立即在for循环中移动到next。如果时间到了,它就会中断循环。怎么做?谢谢!
答案 0 :(得分:0)
这应该做的工作问题有点模糊,这也只会在每次迭代开始时打破条件,如果时间超过&gt; 5S
long timestamp = System.currentTimeMillis();
for(int i=0; i<payloadList.size() && (System.currentTimeMillis() - timestamp) < 5000; i++){
...
}
答案 1 :(得分:0)
你需要至少做一次。使用do while循环
long startTime= System.currentTimeMillis();
int i=0;
do{
...Calculations
if(System.currentTimeMillis()-startTime < 5000){
break;
}
startTime= System.currentTimeMillis();
i++;
}while(i<payloadList.size());
如果lop在小于或大于5秒时断裂,我对你的陈述感到困惑,所以使用&lt; /&gt;根据您的要求签名