需要注意的是,必须从UI线程,另外启动一个线程才可以。
在新线程调用异步刷新就OK了
Thread thread; private void button1_Click(object sender, EventArgs e) { thread = new Thread(new ThreadStart(AnotherRefresh)); thread.IsBackground = true; thread.Start(); } private void AnotherRefresh() { MyRefresh("hello world"); Thread.Sleep(1000); MyRefresh("Bye Bye"); } private void MyRefresh(string str) { try { this.Invoke((MethodInvoker)delegate() { textBox1.Text = str; }); } catch (Exception ex) { MessageBox.Show(ex.Message); } }