在ASP中使用城堡式单例是否会引起争用?. NET web应用程序

本文关键字:争用 NET 应用程序 web 是否 ASP 城堡 单例 | 更新日期: 2023-09-27 18:14:44

我在ASP.NET中用Singleton方式实例化的类中使用了一个只读字典对象。对字典对象的访问没有锁定。

考虑到可能有许多web请求同时访问

在ASP中使用城堡式单例是否会引起争用?. NET web应用程序

,你是否期望在从这个对象读取时会有任何。net争用?

这个问题实际上是关于字典线程安全的,与Windsor无关。

假设你正在使用标准的。net集合,System.Collections.Generic.Dictionary<K,V>的MSDN文档说:

一个Dictionary(TKey, TValue)可以同时支持多个reader,只要它的集合不被修改。

但是如果你有并发写器,它就不是线程安全的,这意味着它可能不会在内部锁定任何东西,所以我不希望有任何争用。

你用的是哪个版本的温莎城堡?这是3.2版本的一个bug - https://github.com/castleproject/Windsor/issues/34

升级版本