2010-02-04 45 views
0

我有一个方法名称“LogClick”,每秒调用2次或更多次。我把它在tradicional方式:ASP.NET - VB.NET - 共享方法

Call New MyClass().LogClick() 

Everty时间我称之为 “LogClick” 中, “MyClass的” 被实例化。所以我想:“为什么不将这种方法转换为共享?”

Public Shared Sub LogClick() 
... 
End Sub 

MyClass.LogClick() 

我才有的性能,同意欧内存问题转化这种方法来共享?

回答

0

]嘿,

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

HTH。

0

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

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

+0

LogClick()在数据库的表中插入1行。所以,它每秒钟插入2次。 另一件事,de Insert()也是共享的,我可能有任何问题吗? – Fernando 2010-02-05 00:43:49

+0

取决于您如何创建和销毁数据库连接以及连接属性。如果这些实际变量中的任何一个被共享,您将遇到麻烦。 – womp 2010-02-05 01:08:40

+0

是的,我意识到..谢谢! – Fernando 2010-02-05 01:20:53