一个程序,用随机数以随机间隔填充堆栈(自己的堆栈类)。插入的项目应添加到名为sum的变量中。
线程会密切关注堆栈,并在有可用项时修改总数
我创建了堆栈
public int capacity { get; set; }
int[] stack;
int top = 0;
public int push(int element)
{
if (top == capacity - 1)
{
return 1;
}
else
{
top = top + 1;
stack[top] = element;
return 0;
}
}
首先在设定的时间间隔上对两件事感到困惑,我知道我在计时器上错了,但是在哪里?
private void button1_Click(object sender, EventArgs e)
{
System.Timers.Timer t = new System.Timers.Timer(rand.Next(1000, 5000));
t.Elapsed += (s,r) => { insertIntoStack(); };
t.Enabled = true;
t.Start();
}
public void insertIntoStack()
{
textBox1.Text = stack1.getsum().ToString();
int number = stack1.generateRandomNumber();
textBox2.Text = number.ToString();
stack1.push(number);
textBox3.Text = stack1.getsum().ToString();
}
public int generateRandomNumber()
{
int number = 0;
System.Random rand = new Random();
number = rand.Next(1, 99);
return number;
}
public void doSum()
{
sum += stack[top];
}
第二个用于线程的线程负责监视堆栈,当有可用项修改总数时,任何人都可以帮忙,对c#来说是全新的