跨线程调用Windows窗体控件

delegate void SetTextCallback(string text);
  private void SetText(string text)
        {
            // InvokeRequired required compares the thread ID of the
            // calling thread to the thread ID of the creating thread.
            // If these threads are different, it returns true.
            if (this.stbsuccess.InvokeRequired)
            {
                SetTextCallback d = new SetTextCallback(SetText);
                this.Invoke(d, new object[] { text });
            }
            else
            {
                this.stbsuccess.Text = text;
            }
        }

 Thread newThread = new Thread(new ThreadStart(threadName));    //创建线程 
  threadName.Start();           

private BackgroundWorker backgroundWorker1;
this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker();
this.backgroundWorker1.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.backgroundWorker1_RunWorkerCompleted);
        private void setTextBackgroundWorkerBtn_Click(object sender,EventArgs e)
        {
            this.backgroundWorker1.RunWorkerAsync();
        }

阅读更多
上一篇用C#实现汉字转化为拼音
下一篇异步TCP连接服务器端
想对作者说点什么? 我来说一句

跨线程访问Windows窗体控件

2018年03月14日 49KB 下载

没有更多推荐了,返回首页

关闭
关闭