texbox1 изначально равен 0, после того как текстовое поле2 обновлено, скажем, 2, тогда текстовое поле 3 должно показывать добавление текстового поля1 и текстового поля2
на выходе должно быть
textbox1 3
textbox2 1 + 2 + 3
textbox3 6
фактический вывод
textbox1 3
textbox2 1 + 2 + 3
textbox3 3
вот мой код
AutoResetEvent event1 = new AutoResetEvent(false);
AutoResetEvent event2 = new AutoResetEvent(true);
Thread t1, t2;
System.Random rand = new Random();
t1 = new Thread(insert);
t1.Start();
t2 = new Thread(OnValueAvailable);
t2.Start();
public void insert()
{
while(true) {
event1.WaitOne();
int randomNumber = rand.Next(1, 9);
SetTextbox1(stack1.getsum().ToString());
SetTextbox2(randomNumber.ToString());
stack1.push(randomNumber);
Thread.Sleep(rand.Next(1000,5000));
event2.Set();
}
}
public void OnValueAvailable()
{
while (true)
{
event2.WaitOne();
stack1.doSum();
SetTextbox3(stack1.getsum().ToString());
event1.Set();
}
}
после попытки предположения мринала я изменил
AutoResetEvent event1 = new AutoResetEvent(true);
AutoResetEvent event2 = new AutoResetEvent(false);
и оставил весь другой код таким же, но нетУспех также попробовал второе предложение к
AutoResetEvent event1 = new AutoResetEvent(false);
AutoResetEvent event2 = new AutoResetEvent(false);
и установил только
public void OnValueAvailable()
{
while (true)
{
event1.Set();
event2.WaitOne();
stack1.doSum();
SetTextbox3(stack1.getsum().ToString());
}
}
, но все еще на шаг впереди фактического результата