1

我正在将应用程序从 Java 移植到 C#,并且遇到了与 .java.util.TimerSystem.Threading.Timer. 事实上,在 Timer 类的 Java 版本中,有一个用于调度任务的功能(在原始代码中使用),这在 .NET 版本中不存在,可以在其中调度一个任务(通过委托函数)一次。

是否有解决方案,甚至是一个小的类集来实现该功能?

我注意到存在几个调度库(一个例子是 Quartz),但我更喜欢一种能够最大限度地减少要使用的代码量的解决方案。

谢谢你们!:)

4

2 回答 2

1

.NET 中至少有 4 个计时器。您的简短回答:使用 System.Threading.Timer。我建议在此处阅读有关计时器的信息,以及查看 System.Windows.Threading.DispatchTimer(WPF 的一部分),它可以在特定时间分派事件,但在 UI 线程上执行此操作。

于 2009-08-17T13:58:14.520 回答
1

您可以使用任何计时器类。对于每个计划任务,创建一个新的计时器类,只需将Interval属性设置为(ScheduledTime - DateTime.Now).TotalMilliseconds并将AutoReset属性设置为 false(或在Tick事件的代码隐藏中将 Enabeld属性设置为 false) . 这将在指定的 ScheduledTime 执行一次您的代码。

于 2009-08-19T11:13:59.723 回答