C# 静态成员和锁

C# 静态成员和锁,c#,multithreading,C#,Multithreading,我有一个包含静态成员的类: static MayClass s_member; 它可以被多个线程访问。 我应该为它使用静态锁对象吗?如果希望阻止并发访问,则需要使用锁进行保护。如果并发访问没有问题,就不需要锁 只有了解您对该成员所做的事情,才能以这样或那样的方式回答此问题。仅并发访问的线程是否曾经读取?如果是这样,那么您可能不需要锁。否则,如果您正在写入共享数据,则需要一个锁。假设MayClass不是为了线程安全而写入的,那么,是的,您应该通过锁来保护对它的访问。问题是模糊的,由多个线程访问可

我有一个包含静态成员的类:

static MayClass s_member;
它可以被多个线程访问。
我应该为它使用静态锁对象吗?

如果希望阻止并发访问,则需要使用锁进行保护。如果并发访问没有问题,就不需要锁


只有了解您对该成员所做的事情,才能以这样或那样的方式回答此问题。仅并发访问的线程是否曾经读取?如果是这样,那么您可能不需要锁。否则,如果您正在写入共享数据,则需要一个锁。

假设MayClass不是为了线程安全而写入的,那么,是的,您应该通过锁来保护对它的访问。

问题是模糊的,由多个线程访问可能意味着任何事情,读取、写入、调用方法、修改、覆盖字段本身。你的问题要准确。然后你会得到预期的答案,没有任何假设。如果你需要问,那么答案可能是“是”。只要应用常识规则:当一个线程可以读取变量,而另一个线程可以写入变量时,就需要一个锁。这包括s_成员引用本身以及MayClass的成员。