我的 ASP.NET 应用程序提供对各种数据块的访问。每个块都可以被一个或多个用户同时访问,因此应用程序必须防止冲突。
经过大量考虑,我认为乐观并发不是这种情况的最佳解决方案,目前将锁定视为一个合适的选择。
我可以很容易地让所有请求一个一个地处理SyncLock
,如下所示:
私有共享访问锁作为新对象
SyncLock AccessLock ..Do some reading and writing here End Synclock
但这极大地限制了应用程序的可扩展性。
因此,我正在考虑以某种方式仅对特定数据部分的访问进行排队。例如,一个队列用于访问数据的一部分,而另一个队列用于访问另一部分数据。
有没有办法自定义同步锁定以对数据的不同部分使用不同的队列,而不是对所有内容仅使用 1 个队列?我的意思是它可以让我手动指定诸如“SyncLock ("Group1") 和 "SyncLock ("Group2") 之类的东西。