实时刷新winform中的某一个控件上的文字

 

需要注意的是,必须从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);
            }
        }

 

posted @ 2014-11-10 16:28  ChuckLu  阅读(3261)  评论(0编辑  收藏  举报