紧急解决怪现象 高手速进 200高分(静态方法调用问题) 回答上来全是你的
UFONe 2009-12-17 07:55:43 有一类
class aaa
{
public static string str ;
public static void med1(string s)
{
str=s;
}
}
在其他处连续调用该类中静态方法
class bbb
{
void med2()
{
aaa.med1("1");
string s1=aaa.str;
aaa.med1("2");
string s2=aaa.str;
//这里断点
}
}
执行med2方法 有时候正确 s1是1 s2是2
但有时候 s1和s2都是1(程序运行比较快时)
是不是在aaa方法结束时 由于静态变量依赖于类 并未被及时释放所以导致str的值第2次没赋上还是1,
或是线程在第2次调用med1方法时没用同步。
谁给我解释下什么原因造成的,该如何解决?
有人说aaa中赋值时这样写 lock (typeof(string)) 我试了下根本不好使
{
str = s;
}