![]() |
1
7
如前所述,您可以取消提交给计时器的计时器任务,而不是取消计时器,这样您就不必再增加新的计时器。 你在做什么:
将引发IllegalstateExceptions,因为不能在已取消的计时器上安排新任务。 所以不要这样做:timer.cancel()。 让您的映射成为从会话键到时间任务的映射,并取消时间任务而不是计时器。这样,您就不必新建计时器,并且您的计时器将在取消一个或多个任务后按预期工作。您还可以使用一个计时器来处理多个会话。现在,您将为每个会话生成一个计时器,从而生成一个线程。
另一方面,您不应该使用
|
![]() |
2
2
我相信您可以使用一个计时器对象,创建尽可能多的计时器任务,而不是创建多个计时器。计时器成本很高,因此对整个应用程序使用一个或两个计时器就足够了。另外,您要取消计时器而不是计时器任务,请尝试取消计时器任务。 |
![]() |
3
1
如果计时器不为空,则应该能够调用
|
![]() |
4
1
在您尝试取消计时器的行之后,您应该在调用schedule方法之前创建一个新的计时器。
|
![]() |
AryA Derakhshan · 在指定的时间重复循环 3 年前 |
|
user8105388 · If语句不与计时器一起工作 7 年前 |
![]() |
Don · 无限循环崩溃,但不在更新函数中 7 年前 |
![]() |
user9769106 · 绘制形状C的路径# 7 年前 |
![]() |
SPlatten · MSVC 2008更好的时机? 7 年前 |