如何从线程2识别线程1是否已更新类中的值

时间:2018-09-10 08:56:04

标签: c# multithreading

语义

我有一个线程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是如何连续调用的。

0 个答案:

没有答案