C# 具有抽象保护成员的多线程?

C# 具有抽象保护成员的多线程?,c#,multithreading,thread-safety,threadpool,C#,Multithreading,Thread Safety,Threadpool,我正在考虑一个现有的多线程C#应用程序,并注意到如下代码 public abstract class Task { protected IList<string> action; 一些特殊的“任务”源于任务,一些任务方法修改“操作”。所以在我看来,这不是线程安全的。我说得对吗 谢谢你的帮助 奥利维尔不,你说得不对动作是一个实例字段,因此任务派生类的每个实例都有自己的动作副本。只有当操作是静态时,这才可能是一个问题 为了澄清这一点,您可以有许多任务派生的对象。对于单个线程来说

我正在考虑一个现有的多线程C#应用程序,并注意到如下代码

public abstract class Task
{
    protected IList<string> action;
一些特殊的“任务”源于任务,一些任务方法修改“操作”。所以在我看来,这不是线程安全的。我说得对吗

谢谢你的帮助


奥利维尔不,你说得不对<代码>动作是一个实例字段,因此
任务
派生类的每个实例都有自己的
动作
副本。只有当
操作
静态
时,这才可能是一个问题


为了澄清这一点,您可以有许多
任务
派生的对象。对于单个线程来说,每一个都可以正常工作。但是,您不希望有多个线程访问同一个
任务
实例,除非修改
操作
的代码受到某种同步的保护。

还有一个问题,抽象类任务调用多个方法,这些方法也调用几十个其他方法。只要none声明为静态,每个任务派生类是否会获得所有方法和成员的副本?方法不重要。只要没有一个字段是静态的,那么一切都是好的。如果方法写入静态字段,那么您就有一个潜在的问题。谢谢,我感谢您的帮助。
    public void Initialize (params)
    ...