2009-12-02 41 views
3

不知道它是如何工作的,但我有一个问题: - 是否静态使应用程序的缓慢,因为同一个变量或方法在整个应用程序共享,并且当一个请求使用方法或变量另一种必须等待它被释放。是否静态让它慢

回答

5

不,不。此外,.NEt不会因为您同时从程序的不同部分访问变量而自动锁定变量。你将不得不自己实现锁定。

+1

@Maxmimilian感谢您的答复,我还发现,所有的静态变量存储在堆中,因为它们不限于任何对象的范围,因此GC将不收取任何的静态成员,直到应用程序域现在可以慢关闭系统我想 – 2009-12-02 13:18:21

5

不,不。它只是使应用程序线程不安全。如果你想要它是安全的,你必须锁定函数/变量,然后是的,它必须等待。 (这只对多线程的环境中,如果你只使用一个线程,也不要紧,因为功能不能同时运行“两次”)

+2

关于内存消耗什么?太多的静态变量可能需要大量内存,最终会减慢操作系统的速度(因为静态变量不会被GC收集)。 – 2009-12-02 12:05:14