我编写了一个任务来通过套接字发送某个 TCP 消息。我有一个包含一堆消息和一些时间戳的文件,所以我将任务编程为 TimerTask,并使用带有第一个消息时间戳的 Timer 安排它。
当它完成时,任务运行方法结束,但它的关联线程仍然存在,它没有被取消。如果我尝试使用新时间重新安排任务,我会收到一个异常,告诉我无法重新安排已安排或取消的任务。
我也在重新安排之前尝试取消它,但显然,正如异常所告诉的那样,它仍然是同样的问题。
我不能用恒定的时间安排任务让它重复自己,因为每条消息都有一个时间而且它不是恒定的。
如何重新安排 TimerTask?顺便说一句,有没有什么方法可以等待任务结束,就像在套接字通信中,当它用 ready 方法阻塞直到消息到达一样?