c# - 为什么我们应该避免锁定(this)?

标签 c# multithreading

<分区>

Possible Duplicate:
Why is lock(this) {…} bad?

在 C# 中,为了使临界区线程安全,我们可以使用 lock() 语句。 lock 语句接受一个对象。如果我们将 this 传递给 lock 语句有什么问题?

最佳答案

因为 this 没有被类封装,因此很难推断谁锁定了 this。 IE。为了找出代码的哪一部分锁定在 this 上,您需要进行大量检查。另一方面,如果您将锁定限制为私有(private)成员,则很容易推断出锁定发生的位置。

关于c# - 为什么我们应该避免锁定(this)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3737704/

相关文章:

c# - 从 HTML 创建 Word 文档

c# - SignalR:生成的代理与动态创建的集线器文件

c# - 防止显示 Windows 安全窗口

multithreading - 在多个 qt 线程中使用单个 QSqlDatabase 连接

java - 使用线程分割一个大文件

multithreading - Haskell 轻量级线程开销和在多核上的使用

java - 如何处理 Observer 中的数据输出?

c - netbsd pthread_create SIGABRT

c# - 如何在谷歌电子表格中间插入一行

c# - 为什么即使在转换其父类之后,Web API Action 方法也会返回子属性的 Json