3

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

public abstract class Task
{
    protected IList<string> action;

...

    public void Initialize (params)
    ...

一些特殊的“任务”派生自任务,一些任务方法修改“动作”。所以在我看来,这不是线程安全的。我对吗 ?

谢谢你的帮助,

奥利维尔

4

1 回答 1

3

不,你不对。action是一个实例字段,因此Task派生类的每个实例都有自己的action. 只有actionstatic.

为了澄清,您可以有许多 -Task派生对象。其中每一个都适用于单个线程。但是,您不希望多个线程访问同一个Task实例,除非修改的代码action受到某种同步的保护。

于 2013-06-26T14:27:24.067 回答