语义
我有一个线程thread1
,用于更新类中的数组。每次thread1
更新数组中的单个值时,thread2
必须得到通知。换句话说,thread2
是监视该值,并且如果该值已被修改,请执行某些操作。如果不是,则等待该值被修改。
尝试
对于thread1
,我创建了Task
并填充了Array
。但是,我对thread2
如何在堆栈上保持注视以及何时有可用项感到困惑。 添加项目时,保存数组的类会通知另一个线程以获取项目可用性。
AutoResetEvent pro = new AutoResetEvent(true);
AutoResetEvent con = new AutoResetEvent(false);
t1 = new Thread(insert);
t2 = new Thread(OnValueAvailable);
t1.Start();
t2.Start();
public void OnValueAvailable()
{
pro.WaitOne();
class.doSum();
con.Set();
}
public void insert()
{
for(int i=0;i<10;i+=){
con.WaitOne();
class.push(randomNumber);
pro.Set();
}
}
我也不知道t2
是如何连续调用的。