提问人:Jez 提问时间:10/25/2023 最后编辑:Theodor ZouliasJez 更新时间:10/30/2023 访问量:88
现在是否有与 AsyncEx 的 AsyncLock 等效的 .NET SDK?
Is there now a .NET SDK equivalent to AsyncEx's AsyncLock?
问:
我正在阅读这个问题,在撰写本文时,有两个异步锁定原语在 C# 中被广泛使用;来自 AsyncEx 库的 AsyncLock,以及 Scott Hanselman 的 AsyncLock(基于 Stephen Toub 的 AsyncLock)。两者都不受 Microsoft 的正式支持,对于像同步原语这样基本的东西,我真的更喜欢使用实际上位于 .NET SDK/框架中的锁,并且是官方的。
Microsoft有没有正式推出任何官方的东西?即。异步等同于块?如果没有,是否有计划这样做?这似乎是一个相当大的疏忽。我知道您可以使用来实现异步互斥锁,但它仍然不是一个合适的锁定类。lock
SemaphoreSlim
正确的锁定类:提供 IDisposable
发布器的类,以便它可以与 using
语句一起使用。
答:
评论
SemaphoreSlim
来实现异步互斥锁,但它仍然不是一个合适的锁定类。”-- 为什么会这样?await
lock
IDisposable
SemaphoreSlim
Monitor
也没有提供发布器(至少今天没有)。互斥锁
也没有。您认为 .NET 目前也缺乏用于同步同步的适当锁定类吗?SemaphoreSlim
IDisposable