我正在将应用程序从 Java 移植到 C#,但遇到了与 java.util.Timer
和 System.Threading.Timer 之间的不同行为和功能相关的问题
。
事实上,在 Timer 类的 Java 版本中,有一个用于调度任务的功能(在原始代码中使用),而 .NET 版本中没有该功能,可以在以下位置调度一个任务(通过委托(delegate)函数):一次。
有没有解决方案,甚至是一个小的类集来实现该功能?
我注意到存在多个调度库(例如 Quartz),但我更喜欢一个能够最大限度地减少要使用的代码量的解决方案。
谢谢大家! :)
最佳答案
您可以使用任何计时器类。对于每个计划任务,创建一个新的计时器类,然后将 Interval 属性设置为 (ScheduledTime - DateTime.Now).TotalMilliseconds 并设置 AutoReset> 属性设置为 false(或者在 Tick 事件的代码隐藏中将 Enabeld 属性设置为 false)。这将在指定的 ScheduledTime 执行一次您的代码。
关于c# - 将 Timer 类从 java 转换为 c# : scheduling tasks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1288055/