ASP.NET-VB.NET-共享方法

ASP.NET-VB.NET-共享方法,asp.net,vb.net,shared,Asp.net,Vb.net,Shared,我有一个方法名“LogClick”,每秒调用2次或更多次。我用传统的方式称之为: Call New MyClass().LogClick() 每次我调用“LogClick”时,“MyClass”都会实例化。所以我想:“为什么不把这个方法转换成共享?” 将此方法转换为共享会不会出现性能、并发性和内存问题?]Hey Public Shared Sub LogClick() ... End Sub MyClass.LogClick() 本身没有性能问题,但任何静态变量都将保留在内存中,即使在AS

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

Call New MyClass().LogClick()
每次我调用“LogClick”时,“MyClass”都会实例化。所以我想:“为什么不把这个方法转换成共享?”

将此方法转换为共享会不会出现性能、并发性和内存问题?

]Hey

Public Shared Sub LogClick()
...
End Sub

MyClass.LogClick()
本身没有性能问题,但任何静态变量都将保留在内存中,即使在ASP.NET中也是如此。所以你必须对此作出解释。但一般来说,如果没有任何静态变量,性能将与实例相同。。。根据实例中的内容,使用静态方法可能会更好

HTH.

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


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

LogClick()在数据库的表中插入1行。因此,它每秒会多插入2次。另一件事,de Insert()也是共享的,这有什么问题吗?取决于您创建和销毁数据库连接的方式以及连接属性。如果这些实际变量中有任何一个是共享的,那么您就有麻烦了。