提问人:user16668952 提问时间:10/24/2021 最后编辑:Theodor Zouliasuser16668952 更新时间:10/24/2021 访问量:271
如何在 .NET 中实现 Oplock(机会锁定)?
How to implement Oplock (opportunistic locking) in .NET?
问:
我需要在 .NET 项目中实现 Oplock(机会锁定)。以下是我需要实现的方案:
- 应用程序 1 打开文件并且不允许写入(例如,使用 打开一个文件)。
FileShare.Read
- 应用程序 2 请求写入文件(使用 打开文件)。
FileAccess.Write
- 应用程序 1 收到请求写入的通知。它确认打破锁定并允许应用程序 2 写入文件。
类中具有完全异步 I/O 支持,并且 .NET 中还有 NativeOverlapped
结构。看起来 .NET 拥有 Oplock 所需的一切。但是,没有任何示例如何使用和 NativeOverlapped.EventHandle
字段来处理 oplock 中断,并且此结构没有任何参数。FileStream
NativeOverlapped
.NET 是否支持 Oplock?有没有 Oplock 的例子?
答: 暂无答案
评论
FSCTL_REQUEST_OPLOCK
OPLOCK_LEVEL_CACHE_READ
REQUEST_OPLOCK_INPUT_FLAG_REQUEST
FSCTL_REQUEST_OPLOCK
FSCTL_REQUEST_OPLOCK
ReaderWriterLock
ReaderWriterLockSlim