每隔N分钟我们希望运行一次任务列表。因此,我们创建了一个任务执行器,其中包含一个
scheduledExecutorService
,它将在计划的时间间隔内运行这些任务。do { DoWork(); }while(!stopRequested)
现在我们想要在工作周期之间暂停。大家似乎都认为Thread.Sleep()是魔鬼。我看到有人提到使用Monitor/Event的东西,但我们没有别人告诉我们要做什么工作。我们只想每N分钟做一些事情,如钟表般准时。
所以是否有替代方案或者我已经找到了Thread.Sleep的有效用法?
另外一个帖子中的某人提到了WaitHandle.WaitOne()作为替代方案,但显然无法从非静态方法中调用它?或者至少我不能,因为我得到了编译时错误..
需要对象引用 ‘System.Threading.WaitHandle.WaitOne(System.TimeSpan)’的非静态字段、方法或属性