2014-02-11 26 views
3

我已经用C#编写了一个应用程序。 几种方法都是静态的。我们同时运行几个C#应用程序。事实:我的两位同事告诉我,如果我们运行2个或多个具有这些静态方法的C#应用​​程序,应用程序将会减慢,因为每个应用程序必须在每个应用程序实例之间共享静态方法。同一应用程序的两个实例之间的静态方法

我认为这完全不正确,并希望得到其他人的意见。

由于声明应用程序必须“共享”静态方法,是否会运行具有静态方法的相同C#应用程序的2个或更多实例?

+3

我会忽略你的同事的未来建议。 –

+0

发生紧急情况...不要跟随你的同事:) –

+1

我更加困惑,他们锁定*速度*,而不是任何与共享/静态成员相关的典型危险,如线程安全。 –

回答

6

你的同事完全错误。

开玩笑,每个应用程序都会使用静态方法加载程序集。除了相同的库引用之外,它们并不真正“共享”任何内容。例如,Windows应用程序肯定会共享对许多相同静态方法的调用,但它们并没有(表面上)放慢速度。

+0

非常感谢MailmanOdd和所有你的回应。我必须用一种“床边的态度”来与同事交流,如果有人有债务分析/解释,我们将非常感激。 – Carlos

0

邮件是正确的。 如果在程序的同一运行实例中有类的多个实例,那么静态成员/变量将在这些类实例之间共享,但仍不会导致您减慢速度。

相关问题