我有一个方法名称“LogClick”,每秒调用2次或更多次。我以传统的方式称呼它:
Call New MyClass().LogClick()
Everty时间我称之为“LogClick”,“MyClass”是实例化的。所以我想:“为什么不将这种方法转换为共享?”
Public Shared Sub LogClick()
...
End Sub
MyClass.LogClick()
我是否会有性能,同意内存问题会将此方法转换为共享?
答案 0 :(得分:0)
]注意,
本身没有性能问题,但任何静态的变量都将保留在内存中,即使在ASP.NET中也是如此。所以你必须考虑到这一点。但一般来说,如果没有任何静态变量,性能将与实例相同......取决于实例中的内容,使用静态方法可能会更好。
HTH。
答案 1 :(得分:0)
共享(C#中的静态)本质上是非线程安全的,因为所有页面实例都将访问同一个对象。
“问题”完全取决于LogClick()正在做什么。您必须非常小心地分析代码,假设在执行每一行之后执行将转移到另一个线程,然后再返回。