int i = 0;
Thread threadA;
//数字变化滚动方法
public void startA()
{
while (true)
{
Random r = new Random();
i = r.Next(num);
Thread.Sleep(10);
}
}
private void button7_Click(object sender, EventArgs e)
{
for (int aa = 1; aa < 4; aa++)
{
threadA = new Thread(new ThreadStart(startA));
threadA.Start();
threadA.Abort();
MessageBox.Show(i.ToString());
}
}为什么取得i的值老是0?
Thread threadA;
//数字变化滚动方法
public void startA()
{
while (true)
{
Random r = new Random();
i = r.Next(num);
Thread.Sleep(10);
}
}
private void button7_Click(object sender, EventArgs e)
{
for (int aa = 1; aa < 4; aa++)
{
threadA = new Thread(new ThreadStart(startA));
threadA.Start();
threadA.Abort();
MessageBox.Show(i.ToString());
}
}为什么取得i的值老是0?
1、同时初始化,起始值完全相同,你的问题应该属于这一种,所以全是0;
2、每个线程产生的随机数相同,这个我在QQ的问问中看到有人问过,当时我帮他想的方法是用线程等待,不要多个线程同时启动。