[非常急]主线程与新健出来的线程读取全局变量的问题
在程序开始时会先新建出一个副线程,这个副线程要读取一个全局变量,这个变量的值会在主程中改变(主线程中为一个循环改变这个值),现在副线程读到的这个全局变量都是主线程循环结束后(最后得到的值)比如
主线程
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的读写器
}