我正在使用 SwingWorker 通过 TCP 连接读取数据并在数据返回时显示。
new SwingWorker<EnvInfoProto, Void>() {
@Override
public EnvInfoProto doInBackground() {
try {
xxx.writeTo(socket.getOutputStream());
return ProtoMsg.parseFrom(socket.getInputStream());
} catch(IOException ignore) { }
return null;
}
@Override
public void done() {
try {
UpdateGui(get());
} catch (Exception ignore) {}
}
}.execute();
Run Code Online (Sandbox Code Playgroud)
当套接字死亡时,就会出现问题,例如在 writeTo 之后,它会永远等待套接字上的输入。一段时间后超时的最简单方法是什么?这是否也是这种情况下的最佳解决方案?在该解决方案中我还会使用 Swingworker 吗?
谢谢