我有一个.NET应用程序管理几个大型项目集合。 每个项目有一个“扫描时间”间隔(每1秒,每5秒,每分钟等等,它是用户定义的)。 当时间到了,该项目需要运行一个内部方法,该方法可能会改变其状态并写入数据库。通知父母更改的子女
目前应用结构基本上是:
每个集合在不同的线程管理,并在每个线程有针对每个越过所有的项目,并为每个项目循环并行它检查是否有足够的时间已过,该项目需要运行他的内部方法。 当一个或多个线程有很大的集合时,这种方法会导致问题,并且很多项目具有很小的“扫描时间”。 由于它遍历所有的项目,以找出需要更新的项目。
我以为到了结构改变某种Observer模式。 我的想法是每个项目将运行一个计时器并通知父线程它需要更新。 我看到有一个名为Reactive Frameworks的.NET库,但我不确定是否可以使用它。
,关于如何提高当前进程的任何其他想法是值得欢迎的。
因为这似乎是相对我的范围,我会试探性的给出任何正式的答案,但对我来说似乎是一个事件系统将要走的路。集合订阅每个项目的事件并在对象更新时接收通知。 – BHustus
Kilanny写了什么让我意识到,使每件物品都检查状态并在超时时通知价格非常昂贵 – LimS