我刚开始学习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);
将执行可运行的"MyDemoClass"每60秒一个后台线程
我如何在c#中做到这一点?我已经看了它的ThreadPool http://msdn.microsoft.com/en-us/library/3dasc8as(v=vs.80).aspx,但它似乎不是我要找的。
非常感谢
使用System.Timers.Timer与Interval
连接到Elapsed
事件处理程序,执行所需的周期性逻辑。
Timer组件是一个基于服务器的计时器,它允许您指定一个循环间隔,在该间隔中引发Elapsed事件您的应用程序。然后,您可以处理此事件以提供常规处理。例如,假设您有一个关键服务器,它必须他每周7天,每天24小时不停地工作。你可以创建一个使用定时器定时对服务器进行检查,确保服务器正常运行系统已经启动并运行了。如果系统没有响应,该服务可能会尝试重新启动服务器或通知管理员。
我想你找的是System.Threading.Timer
http://msdn.microsoft.com/en-us/library/system.threading.timer.aspx
"使用TimerCallback委托来指定你想让Timer执行的方法。计时器委托是在构造计时器时指定的,不能更改。该方法不在创建计时器的线程上执行;它在系统提供的ThreadPool线程上执行。"