c# - GetHashCode 是线程安全的吗?

标签 c# .net thread-safety

我有这个问题。

public class Foo : object
{
    public override bool Equals(obj a, objb)
    {
       return ((Foo)a).Bar.GetHashCode() == ((Foo)b).Bar.GetHashCode();
}

}

假设我想让 Foo 线程安全。我需要同步调用 GetHashCode() 吗?

最佳答案

摘自System.Object的文档:

Public static members of this type are thread safe. Instance members are not guaranteed to be thread-safe.

因此,如果您没有覆盖Object.GetHashCode,则无法保证线程安全。如果您已覆盖,则取决于您的实现。它还取决于您所说的“thread safe”的含义。

关于c# - GetHashCode 是线程安全的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2234272/

相关文章:

c# - DataContext ="{Binding}"是什么意思?

c# - Windows 键的 SendKey 是什么

c# - 用于C#的构建工具,类似于Java的maven/gradle

c# - 从 Web 应用程序运行计划任务

c# - 将动态对象传递给 C# 方法会更改返回类型

.net - 使用 .NET 的 WeakEventManager 实现弱事件的示例

c# - 如何序列化 WCF 响应中的嵌套类型?

c# - 为什么线程教程中的 MSDN 示例会崩溃?

ruby-on-rails - 如何拥有线程安全的 Rails 初始化器?

c# - 这里为什么要用 Thread.MemoryBarrier 呢?