我正在阅读this question,在 compose 本文时,有两个在C#中广泛使用的异步锁定原语:来自AsyncEx库的AsyncLock和Scott Hanselman的AsyncLock(基于Stephen Toub的AsyncLock).两者都没有得到微软的正式支持,对于像同步原语这样基本的东西,我真的更喜欢使用.NET SDK/框架中实际存在并且是官方的锁.

微软有没有正式推出过这样的产品呢?也就是说.相当于lock个区块的异步?若否,有否计划这样做?这似乎是一个相当大的疏忽.我知道您可以使用SemaphoreSlim来实现异步互斥锁,但它仍然不是一个正确的锁定类.

Proper locking class:提供IDisposable释放器的类,以便可以与using语句一起使用.

推荐答案

微软有没有正式推出过这样的产品呢?

不是的.目前有a movement个是新的Lock类型,这是作为lock语句的替代.AFAIK在C#语言或.NET运行时中没有发生任何关于await lock语句或AsyncLock类型的事情.

Csharp相关问答推荐

在实际上是List T的 IESEARCH上多次调用First()是否不好?

Blazor:用参数创建根路径

使用命令初始化可绑定属性

如果属性名为xyz,我需要使用System.Text.Json修改字符串类型的值""<>

从应用程序图API调用访问所有者字段

如何测量在使用UTF8而不是C#中的UTF16编码字符串时内存使用量的增长

为什么在使用动态obj+类obj时会调用串联?

ASP.NET核心MVC SqlException:违反主键约束';PK_USER';.无法在对象';数据库中插入重复的密钥.用户';

未找到任何HTTP触发器.成功部署Azure Functions Project后(c#)

单元测试:模拟返回空

.NET 8 DI GetServices<;对象&>不工作

自定义列表按字符串的部分排序

Content WithTargetPath实际上是有效的MSBuild项吗?

KeyDown从我的文本框中删除输入,如何停止?

如何将默认区域性更改为fr-FR而不是en-US?

根据优先级整理合同列表

无效的Zip文件-Zip存档

在C#中通过Matheval使用自定义公式

为什么我不能在固定语句中使用外部函数?

MS Project读取项目自定义域