每隔N分钟,我们要运行一系列任务。因此,我们已经创建了一个任务执行与Thread.Sleep的替代方案()
do { DoWork(); }while(!stopRequested)
现在,我们希望有工作周期之间的停顿。每个人似乎都认为Thread.Sleep()是魔鬼。我已经看到使用Monitor/Event的提及,但我们没有其他人告诉我们去做工作。我们只是想每隔N分钟就像发条一样做东西。
那么有没有其他的选择或我找到了Thread.Sleep的有效使用?
有人在另一篇文章中提到了WaitHandle.WaitOne()作为替代方案,但你不能从非静态方法显然调用它?或者至少,我不能,因为我得到一个编译时错误..
需要 的对象引用非静态字段,方法或 财产 “System.Threading.WaitHandle.WaitOne (System.TimeSpan)'
你认为答案仍然有效吗? – Cer 2017-03-30 11:40:37
@Cer:它应该仍然有效,当然。另一种方法是使用具有取消标记的任务。 – 2017-03-30 12:36:20