请解释一下主要的区别是什么,我应该在什么时候使用什么

推荐答案

lock只允许一个线程同时执行代码.ReaderWriterLock可能允许多个线程同时读取或具有独占的写入访问权限,因此可能更高效.如果你正在使用.NET3.5ReaderWriterLockSlim甚至更快.因此,如果共享资源的读取频率高于写入频率,请使用ReaderWriterLockSlim.使用它的一个很好的例子是,您经常(在每次请求时)读取一个文件,并且很少更新该文件的内容.因此,当你从文件中读取时,你会输入一个读锁,以便许多请求可以打开它进行读取,当你决定写入时,你会输入一个写锁.在文件中使用lock基本上意味着您可以一次处理一个请求.

.net相关问答推荐

尽管有`disable`注释,但未 suppress Pylint语法错误

升级到.NET8后,SignalR(在坞站容器上)网关损坏

WinForm Task.Wait :为什么它会阻塞 UI?

等待时 Blazor 服务器按钮刷新

.NET 中两个子字符串之间的非贪婪正则表达式匹配

使用 Task.WhenAll 但需要跟踪每个单独的 Task 的成功

什么是提升运算符?

MongoDB C# 驱动程序 - 忽略绑定字段

.NET 中是否有一种简单的方法来获得数字的st、nd、rd和th结尾?

C# 是否(或将)包含用于副作用验证的功能?

.NET 如何判断路径是否是文件而不是目录?

.NET 反射的成本是多少?

检索字典值最佳实践

迭代器和枚举器的区别

有没有办法从方法返回匿名类型?

如何将 XPath 与 XElement 或 LINQ 一起使用?

如何在 WPF 中的 Xaml 文件中添加注释?

确定使用 ContextMenuStrip 的控件

/langversion 的错误选项6无效;必须是 ISO-1、ISO-2、3、4、5 或默认值

如何判断uri字符串是否有效