我正在创建一个单例来保存从缓存的 xml 文件中提取数据的 linqtoumbraco 数据上下文。
我了解如何创建单例类并使用锁来防止新线程创建新实例。
我不了解多线程以及 .NET session 如何工作得很好,我想知道如果我如上所述创建单例,它是否会被所有访问我的网络应用程序的用户共享,同时应用程序池仍然存在?换句话说,单例不仅仅是一个用户 session 的单例,它是所有 session 的单例?
谢谢
最佳答案
是的,静态成员为整个 ASP.Net 应用程序共享
另一种方法是在 HttpContext.Current.Application 中创建和分配数据上下文,您可以在任何 session 中从任何地方获取它
但是仔细想想,难道所有客户端都只读取xml文件吗?如果一个客户在另一个客户写作的时候正在阅读怎么办?或者 datacontext 是否支持多线程读取? 在以静态方式使用该数据上下文之前,您应该回答所有这些问题
关于c# - .NET 中的单例在所有 session 之间共享吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6231130/