悬赏分:20 浏览:374 次
该静态变量对于每个线程来说,值是不一样的,例如:public static string StaticString,对于
线程1:该值为“1”,
线程2:该值为“2”
如果该变量不为静态,就不存在这个问题,但现有系统中很多地方都调用了这个静态变量。
如何使静态变量仅作为某线程的“全局”使用,而不是整个系统的“全局”?
不知我说清楚没……
|
when u guys try to update this static value, use
public void UpdateValue(string newValue)
{
try(object)
{
StaticString = newValue;
}
} 做一个dictionary静态的,用线程的ID作为key,那样获取和设置他的value,应该可以得到效果吧 线程的托管 ID 是不唯一的, 就是说有可能被以后的线程占有. lock关键字吧,访问的时候lock掉,访问完结束。 ThreadStaticAttribute 这个应该只在WinFowm环境下有效吧~~ |
|
3个月前 Colin Han : @沙加 这个Attribute是为CLR指定的,并不仅限于WinForm开发。应该在Web开发中也适用。但是,Web开发中,因为一部分线程的分配和调度是由Server控制的,所以使用这个Attribute时需要多注意一些。 |