基于时间的收集和事件

时间:2011-08-21 20:27:08

标签: c# .net events collections

我想每分钟将一个集合内容批量插入到使用批量插入的SQL Server中。

我使用ConcurrentBag将请求存储在内存中。

这样做的最佳做法是什么?或者如何做到这一点?

我明白我必须使用事件,我应该将该集合包装在另一个类中并实现过期吗?

我如何将事件用于此目的?

1 个答案:

答案 0 :(得分:2)

我认为要求不够通用,实现这一目标的代码很小,所以我个人认为没有必要创建一个单独的类。至少如果包含类已经过长而且复杂。然而,这或多或少都是品味问题。

为了达到你想要的效果,使用Timer类就足够了,并且在每个计时器上都会枚举插入数据库中的项目并同时从集合中删除它们的集合。 ConcurrentBag上的GetEnumerator处理数据的快照,因此在枚举时删除项目是安全的。