现在的位置: 首页 > 综合 > 正文

线程中调用窗体控件

2013年09月26日 ⁄ 综合 ⁄ 共 1008字 ⁄ 字号 评论关闭

 一.System.EventHandler

        Thread myThread;
        private void button1_Click(object sender, EventArgs e)
        {
            myThread=new Thread(new ThreadStart(CopyText));
            myThread.Start();
        }

        private void CopyText()
        {
            string a = "我是一个参数";//传递的参数
            this.textBox2.BeginInvoke(new System.EventHandler(UpdateUI),a);//核心
        }

        private void UpdateUI(object o, System.EventArgs e)
        {
            //UI线程设置textBox2属性
            textBox2.Text = textBox1.Text+"/r/n"+o.ToString();
        }

 二.用delegate

        Thread myThread;
        private void button3_Click(object sender, EventArgs e)
        {
            //delegate
            myThread = new Thread(new ThreadStart(ThreadStartTest));
            myThread.Start();
        }

        //delegate
        public delegate void Test();

        private void ThreadStartTest()
        {
            this.textBox2.BeginInvoke(new Test(CpyeTextFromText1));
        }

        private void CpyeTextFromText1()
        {
            textBox2.Text = textBox1.Text;
        }
        //delegate 结束

抱歉!评论已关闭.