0

我有一个方法名称“LogClick”,每秒调用 2 次或更多次。我用传统的方式称呼它:

Call New MyClass().LogClick()

每次我调用“LogClick”时,都会实例化“MyClass”。所以我想:“为什么不把这个方法改成共享呢?”

Public Shared Sub LogClick()
...
End Sub

MyClass.LogClick()

将这种方法转换为共享时,我会遇到性能、并发内存问题吗?

4

2 回答 2

0

]嘿,

本身没有性能问题,但任何静态变量都将保留在内存中,即使在 ASP.NET 中也是如此。所以你必须考虑到这一点。但通常,如果没有任何静态变量,性能将与实例相同......取决于实例中的内容,使用静态方法可能会更好。

HTH。

于 2010-02-04T23:38:31.690 回答
0

Shared(C# 中的静态)本质上是非线程安全的,因为您的所有页面实例都将访问同一个对象。

“问题”完全取决于 LogClick() 在做什么。您必须非常小心地分析代码,假设执行将在每一行执行后转移到不同的线程,然后再返回。

于 2010-02-04T23:38:48.630 回答