有一类
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=bbb.str;
//这里断点
}
}
执行med2方法 有时候正确 s1是1 s2是2
但有时候 s1和s2都是1(程序运行比较快时)
是不是在aaa方法结束时 由于静态变量依赖于类 并未被及时释放所以导致str的值第2次没赋上还是1,
或是线程在第2次调用med1方法时没用同步。
谁给我解释下什么原因造成的,该如何解决?
有人说 lock (typeof(string)) 我试了下根本不好使
{
str = s;
}
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=bbb.str;
//这里断点
}
}
执行med2方法 有时候正确 s1是1 s2是2
但有时候 s1和s2都是1(程序运行比较快时)
是不是在aaa方法结束时 由于静态变量依赖于类 并未被及时释放所以导致str的值第2次没赋上还是1,
或是线程在第2次调用med1方法时没用同步。
谁给我解释下什么原因造成的,该如何解决?
有人说 lock (typeof(string)) 我试了下根本不好使
{
str = s;
}
解决方案 »
- 如何让GRIDVIEW中选中的数据处于最前方
- JS获取ViewState的值
- 关于SqldataReader的问题,大家帮忙!!
- IIS 的问题 You are not authorized to view this page
- 求助:正则表达式的问题(很复杂的)请指教,谢谢了.
- 问一个小问题,帮看一下错哪里
- 如何把生成的桌面快捷方式文件加入到打包程序中(安装程序)中?
- 高分求救,master/detail页面,当从Detail页面操作后返回到Master页面,怎样保持Master页面以前状态
- 我怎么取得一个既有汉字又有英文数字的字符串占用的字节数呢?
- asp.net webform中的Page_Load和Page_LoadComplete
- 怎样 将 null 传到数据库
- 高分悬赏 Session 丢失的问题
string s1=aaa.str;
aaa.med1("2");
string s2=bbb.str; // 这里?
string s1=aaa.str;
aaa.med1("2");
string s2=aaa.str;
但是要是直接运行 经常会 s1=1 s2=1