我刚开始学习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,但它似乎不是我想要的。
非常感谢
答案 0 :(得分:1)
将System.Timers.Timer与Interval
一起使用,连接到执行所需定期逻辑的Elapsed
事件处理程序。
Timer组件是一个基于服务器的计时器,允许您使用 指定引发Elapsed事件的重复间隔 你的申请。然后,您可以处理此事件以定期提供 处理。例如,假设您有一个必须的关键服务器 每周7天,每天24小时不间断运行。你可以创建一个 使用Timer定期检查服务器并确保的服务 系统已启动并正在运行。如果系统没有响应, 该服务可能会尝试重新启动服务器或通知 管理员。
你不应该需要线程池来完成这项工作。
答案 1 :(得分:1)
我认为你在寻找System.Threading.Timer
http://msdn.microsoft.com/en-us/library/system.threading.timer.aspx
“使用TimerCallback委托指定您希望Timer执行的方法。定时器委托是在构造定时器时指定的,并且不能更改。该方法不会在创建定时器的线程上执行;它会执行在系统提供的ThreadPool线程上。“