从计时器c#中的SQL Server获取值

时间:2014-11-18 11:22:47

标签: c# sql-server timer

我正在尝试根据数据库中的值在C#中生成自定义事件,只要值达到某个限制(假设为0) 我在Window服务中成功完成了这项工作,我不断监视我的数据库,当时值达到此限制,我在C#中生成一个事件

现在这种方法有一个调整,如果值保持“0”5秒,我需要生成事件。我如何计划创建一个List行,所以每当一个值达到0时,我插入该List,在该行的后台启动计时器。 5秒后,我需要再次从DB获取值,如果它仍为0,则只生成一个事件。

我想知道这是否是解决我问题的正确方法,还是有任何有效/简单的方法来做到这一点?

1 个答案:

答案 0 :(得分:0)

我会为每个值存储DateTime.UtcNow(可能在ConcurrentDictionary<Row, DateTime>中)。然后第二个线程,计时器,任务等可以定期迭代这个字典(可能每秒一次)并检查特定行的时间是否经过,然后提升给定行的事件。

与此同时,原始数据库观察者可以在看到某些更改时更新该字典,方法是更新时间戳或添加,删除一行。