Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我的网站在单个服务器上运行。我正在缓存一个数据表。每个会话都有一个对它自己的 DataView 的引用,该 DataView 引用该 DataTable。我担心的是,当我需要对底层数据表进行更改时,它们会传播到对它的每个会话引用。
或者有没有更好的方法来处理这种情况。
原则上,是的。如果您继续使用相同的 DataTable,更改将传播到视图。但是,根据您的实现方式,可能会出现问题:
第一次生成缓存的 DataTable 时,您有一个潜在的竞争条件:对服务器的多个请求可能会检测到缓存的 DataTable 不存在,并尝试生成它 - 在这种情况下,您可能有一个重复的 DataTable。
如果重新生成缓存的 DataTable(例如,如果由于超时到期而将其从 ASP.NET 缓存中删除),则 Session 中的现有 DataView 将继续引用旧的 DataTable。