读书人

[非常急]主线程与新健出来的线程读取全

发布时间: 2012-02-10 21:27:42 作者: rapoo

[非常急]主线程与新健出来的线程读取全局变量的问题
在程序开始时会先新建出一个副线程,这个副线程要读取一个全局变量,这个变量的值会在主程中改变(主线程中为一个循环改变这个值),现在副线程读到的这个全局变量都是主线程循环结束后(最后得到的值)比如
主线程
for(int i=0;i <999999;i++)

  a+=i //a为全局变量
 }

副线程
proc

while(true)
{
  write(a) //虽然主线程循环还没有走完,但是在副线程里的a却一个没有变话
}


有没有办法取到每次变化的a? 急在线等

[解决办法]
不需要线程就能解决

private int a;

public int A
{
get
{
return a;
}
set{ if (a != value)
{
a = value;
OnAChanged();
}
}
}

private void OnAChanged()
{
write(a);
}


for(int i=0;i <999999;i++)

  A+=i //A为全局变量a的读写器

读书人网 >C#

热点推荐