【发布时间】:2014-11-04 17:12:26
【问题描述】:
我正在将内存中的值记录到列表类型结构中,并且希望仅保留过去一小时内收集的项目。这是在 asp.net mvc 应用程序中,因此列表是静态的,并且可以由多个线程访问。我目前每 80 分钟检查一次,并且只会删除超过 60 分钟的那些(只是这样它就不会在每个请求上执行)。我对遍历结构以查找旧值的代码进行了锁定,将它们收集到临时持有者,然后将它们从原始结构中删除。
我似乎遇到了一些锁定问题,所以很好奇是否有某种内置结构或一些防弹代码可以帮助我这样做,而不是尝试手动编写代码。
【问题讨论】:
-
如何向我们展示您当前使用的代码。另外,您可以查看Code Review
-
msdn.microsoft.com/en-us/library/dd997373(v=vs.110).aspx - 是一个很好的起点。出于好奇,您使用什么作为数据的后备存储?
-
如果没有看到代码,很难知道代码出了什么问题。目前还不清楚为什么你需要一个临时持有者......添加到一个链接列表可以让你通过简单地从尾部删除项目来进行修剪......
-
“遇到一些锁定问题”是什么意思?表现不佳?死锁?由于未锁定导致的不可预测的行为?
-
我实际上忘记了这篇文章,如果我记得这个问题实际上是由于试图从我当前正在迭代的列表中删除项目而引起的。 Woops ;) 如果我能再次找到代码,我会添加细节。谢谢
标签: c# asp.net data-structures