在App_Code中使用了好几个全局Static类
如:
App_Code文件夹下 Basic.cs
- C# code
//根据会员积分,获取会员等级图片标志 public static string GetMarksPic(int marks){ ......}public static int GetUserValue(string username){ ......}
我在其他页面中这样使用:
- C# code
Basic mybasic=new Basic();string pic=mybasic.GetMarksPic(100);.........
目前网站在正常运行,暂未发现异常现象,但查阅资料,别人都说静态变量是全局共享的,会遇到有多线程冲突等错误。
(1)不知道我上面那些代码是否也将会有这样的错误?
(2)对于静态变量真的就有这么多缺点吗?该如何做?
------解决方案--------------------------------------------------------
参考
http://www.cnblogs.com/daniel206/archive/2008/01/10/1032908
http://www.cnblogs.com/kingkoo/archive/2008/07/18/1245956
------解决方案--------------------------------------------------------
用到恰当的地方就好
既然出现了 当然有它的用处
------解决方案--------------------------------------------------------
静态方法是对象所有的.非静态的类又拥有.
所以如果要调用GetMarksPic方法,不需要实例化:Basic.GetMarksPic()
------解决方案--------------------------------------------------------
静态变量不是静态方法或者类。。。
静态变量使用的时候确实有你说的那种情况,所以需要lock。
静态变量不是不能用,要根据实际的需要,并且要做到可控,不要滥用。静态变量在垃圾回收的时候会有问题(因为它是根),用的方法不对可能会Hold大量内存。
你上面的方法没有什么问题,就像开始我说的,你的是静态方法,和静态变量是两码事。
------解决方案--------------------------------------------------------
GetMarksPic是静态方法不能NEW 的; L楼主只要直接调用就可以了·!! Basic.GetMarksPic()
------解决方案--------------------------------------------------------
可以用锁(lock)来控制他的访问线程 这样就不会出现您所担心的问题了
------解决方案--------------------------------------------------------
顶了
刚建一c#群 63242231 希望有志同道合的朋友和高手加入指导
谢谢。。。呵呵呵