private void button1_Click(object sender, EventArgs e) { //带参数 ThreadParam param = new ThreadParam(); param.t_i = 3; //定义循环次数 Thread _WriteThread = new Thread(new ParameterizedThreadStart(doThread)); _WriteThread.Start(param); //启动新线程,不占用主界面线程时间 textBox1.Text = "演示"; } private void doThread(object threadData) { ThreadParam param = (ThreadParam)threadData; for (int i = 0; i < param.t_i; i++) { //循环体,例如暂停1s,会看到效果,先显示“演示”后显示循环次数 System.Threading.Thread.Sleep(1000); } //循环完毕后赋值 if (this.IsDisposed) return; this.Invoke(new EventHandler(delegate(object s1, EventArgs e1) { textBox1.Text = param.t_i.ToString(); })); } private void button2_Click(object sender, EventArgs e) { //不带参数 Thread _WriteThread = new Thread(new ThreadStart(doThreadN)); _WriteThread.Start(); //启动新线程,不占用主界面线程时间 textBox1.Text = "演示"; } private void doThreadN() { for (int i = 0; i < 3; i++) { //循环体,例如暂停1s,会看到效果,先显示“演示”后显示循环次数 System.Threading.Thread.Sleep(1000); } //循环完毕后赋值 if (this.IsDisposed) return; this.Invoke(new EventHandler(delegate(object s1, EventArgs e1) { textBox1.Text = "3"; })); } } class ThreadParam { public int t_i; }