C#访问方法并发

C#访问方法并发,c#,.net-core,concurrency,C#,.net Core,Concurrency,我想了解将一个对象传递给多个类的并发性是否存在一些问题。范例 class A: interfaceA{ private object attribute; public A () { } public bool doSomething(){ Console.writeline("Happy new year :)"); // other non static operations } } cl

我想了解将一个对象传递给多个类的并发性是否存在一些问题。范例

class A: interfaceA{
    private object attribute;
    public A ()
    {
    }

    public bool doSomething(){
        Console.writeline("Happy new year :)");
        // other non static operations
    }
}

class B: interfaceB{
    private InterfaceA classA;

    public B(interfaceA classA){
       this.classA = classA;
    }

    public bool elaborate(){
       return classA.doSomething();
    }
}

class C: interfaceC{
    private InterfaceA classA;

    public C(interfaceA classA){
       this.classA = classA;
    }

    public bool elaborate(){
       return classA.doSomething();
    }
}


public void Main(){
   classA A = new classA();
   classB B = new classB(A);
   classC C = new classC(A);
  
}
这是一个普通的例子,只是给你一个想法。
谢谢大家:)

在编写多线程代码时,您应该注意潜在的危险。如果不是,则不要编写多线程代码

作为.Net framework中的一般经验法则,静态方法应该是线程安全的,但实例方法不是,除非注释中另有规定。您的代码恰好只调用静态的线程安全方法。但是,如果对代码进行任何更改,可能会使代码成为非线程安全的


有大量的资源描述潜在的问题,远远超过了这里所能描述的。例如,对于您共享的特定代码或

,不会有任何问题。因为您不同时修改和/或读取数据,所以没有问题。上面的两个注释都基于这样一个事实,即您的
interfaceA.doSomething()
所做的一切都是
Console.WriteLine(“静态字符串”)这是线程安全的。这个问题的答案很大程度上取决于
interfaceA.sososomething()
做了什么请将示例代码修改为有效的C代码。接口名称不能以
#
(CS1040)开头。在您的示例中,哈希符号(#)的含义是什么?