带有抽象受保护成员的多线程?

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

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

    public void Initialize (params)
    ...

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

谢谢你的帮助,

奥利维尔

解决方法:

不,你不对. action是一个实例字段,因此Task派生类的每个实例都将拥有自己的action副本.仅当动作是静态的时,这才可能成为问题.

为了明确起见,您可以具有许多任务派生的对象.这些中的每一个都适合单个线程.但是,除非有某种同步保护了修改操作的代码,否则您不希望多个线程访问同一Task实例.

上一篇:c# – async / await如何帮助ASP.Net应用程序?


下一篇:java-当一个线程失败时,停止ExecutorService线程.并返回异常