我有一个SwingWorker
应该依次执行3个方法的方法。方法 1 包含一个用于 a 的 while 循环BufferedReader
。这个 while 循环永远不会终止,因为BufferedReader
永远不会发出结束信号。我想在 5 秒后使用某种计时器终止循环。我该怎么做呢?
public class TestWorker extends SwingWorker<Void,Void>{
public TestWorker(){
}
private void doSomething1(){
TelnetClient telnetClient
telnetClient = new TelnetClient();
telnetClient.connect(telnet_IPAddress, telnet_Port);
InputStream telnetInputStream = telnetClient.getInputStream();
try (BufferedReader br = new BufferedReader(new InputStreamReader(telnetInputStream))) {
String line;
while ((line = br.readLine()) != null) {
//Do something
//The bufferedreader is not signaled with an end of a stream. I want to terminate this loop after 5 seconds.
}
} catch (IOException ex) {
}
}
private void doSomething2(){
}
private void doSomething3(){
}
@Override
public Void doInBackground() {
doSomething1();
doSomething2();
doSomething3();
return null;
}
@Override
public void done() {
//Update something on a GUI
}
}