我注意到这个问题:如果我存储在应用程序中的对象上的.NET 3.5/C#为:从应用程序读取数据:与许多用户冲突?
HttpContext ctx = HttpContext.Current;
if (ctx.Application["object"] == null)
ctx.Application["object"] = new MyObject();
return (MyObject)ctx.Application["object"];
许多用户设法得到它并重复它(在foreach)我可以得到一些麻烦:迭代有时会失败,错过一些数据,并返回不正确的结果。
我读到,有很多这些问题阅读应用程序上的.NET,但我不知道如何解决。
我该如何解决这个问题?
EDIT这个崩溃像数据:
var Example = from MyCollection collection in MyObject.Collections
select collection;
这是System.Collections.Generic.IEnumerable<T>
。
那么,在对象ctx.Application["object"]
有一些集合,并且其中很多(崩溃的)是System.Collections.Generic.IEnumerable。如果userA迭代一个集合(存储在MyObject中),同时userB遍历相同的集合,则userA可能会遗漏集合中的某些值,并且userB可能会获得该集合的重复值。
我不能精确说值多少,哪些是思念/重复,因为它是一个阐述的问题。这就是我所说的“返回不正确的结果”。
不,我只读数据,我不改变/编辑/读取过程中添加任何东西到这个集合。
你不应该通过请求共享可变对象。 – SLaks 2011-12-27 15:15:20
任何线程操纵/变异/更改* MyObject中的值* – 2011-12-27 15:16:01
我知道,但所有用户的许多数据都是一样的。这就是为什么我想使用它们...... – markzzz 2011-12-27 15:16:40