0

我刚开始学习 C#,我是一名 Java 程序员。在 Java 中,我可以执行以下操作:

    int corePoolSize = 1;
    long initialDelay = 0;//0 seconds
    long delay = 60;//60 seconds
    ScheduledThreadPoolExecutor stpe = new ScheduledThreadPoolExecutor(corePoolSize);
    stpe.scheduleWithFixedDelay(new MyDemoClass(), initialDelay, delay, TimeUnit.SECONDS);

它将每 60 秒在后台线程中执行 Runnable“MyDemoClass”。

我将如何在 C# 中执行此操作?我查看了它的 ThreadPool http://msdn.microsoft.com/en-us/library/3dasc8as(v=vs.80).aspx,但它似乎不是我想要的。

非常感谢你

4

2 回答 2

1

System.Timers.TimerInterval连接到Elapsed执行所需周期性逻辑的事件处理程序一起使用。

Timer 组件是一个基于服务器的计时器,它允许您指定在应用程序中引发 Elapsed 事件的重复间隔。然后,您可以处理此事件以提供常规处理。例如,假设您有一台关键服务器必须每周 7 天、每天 24 小时保持运行。您可以创建一个使用 Timer 定期检查服务器并确保系统正常运行的服务。如果系统没有响应,该服务可能会尝试重新启动服务器或通知管理员。

您不应该需要线程池来完成这项工作。

于 2013-02-26T15:38:50.187 回答
1

我认为您正在寻找 System.Threading.Timer
http://msdn.microsoft.com/en-us/library/system.threading.timer.aspx

"使用 TimerCallback 委托来指定您希望 Timer 执行的方法。计时器委托在构造计时器时指定,并且不能更改。该方法不在创建计时器的线程上执行;它在 ThreadPool 上执行系统提供的线程。”

于 2013-02-26T15:44:55.143 回答