系列1 曾经说过:每个线程都有自己的资源,但代码区是共享的,即每个线程都可以执行相同的函数。
这可能带来的问题就是多个线程同时执行一个函数,并修改同一变量值,这将导致数据的混乱,产生不可预料的结果。看下面的示例:
object sender, EventArgs e)
{
Thread t1 = new Thread(ChangeTextBox);
t1.Start();
Thread t2 = new Thread(ChangeTextBox);
t2.Start();
}
void ChangeTextBox()
{
for (int i = 0; i < 10000; i++)
{
int num = int.Parse(txtNum.Text);
num++;
txtNum.Text = num.ToString();
}
}