2014-02-11 28 views
3

我已經用C#編寫了一個應用程序。 幾種方法都是靜態的。我們同時運行幾個C#應用程序。事實:我的兩位同事告訴我,如果我們運行2個或多個具有這些靜態方法的C#應用​​程序,應用程序將會減慢,因爲每個應用程序必須在每個應用程序實例之間共享靜態方法。同一應用程序的兩個實例之間的靜態方法

我認爲這完全不正確,並希望得到其他人的意見。

由於聲明應用程序必須「共享」靜態方法,是否會運行具有靜態方法的相同C#應用程序的2個或更多實例?

+3

我會忽略你的同事的未來建議。 –

+0

發生緊急情況...不要跟隨你的同事:) –

+1

我更加困惑,他們鎖定*速度*,而不是任何與共享/靜態成員相關的典型危險,如線程安全。 –

回答

6

你的同事完全錯誤。

開玩笑,每個應用程序都會使用靜態方法加載程序集。除了相同的庫引用之外,它們並不真正「共享」任何內容。例如,Windows應用程序肯定會共享對許多相同靜態方法的調用,但它們並沒有(表面上)放慢速度。

+0

非常感謝MailmanOdd和所有你的迴應。我必須用一種「牀邊的態度」來與同事交流,如果有人有債務分析/解釋,我們將非常感激。 – Carlos

0

郵件是正確的。 如果在程序的同一運行實例中有類的多個實例,那麼靜態成員/變量將在這些類實例之間共享,但仍不會導致您減慢速度。

相關問題