delegate委托的例子,实现对Form中控件的更新
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; namespace Invoketest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } public void UpdateForm(string param1, string parm2) { this.textBox1.Text = param1 + parm2; } public delegate void UpdateForm_dl(string str1, string str2); private void Calldelegate() { /*在Windows窗体应用程序中使用this.Invoke 在WPF应用程序中使用this.Dispatcher.Invoke*/ this.BeginInvoke(new UpdateForm_dl(UpdateForm), new object[] { "我是文本框", "haha" }); //this.Dispatcher.BeginInvoke(new UpdateForm_dl(UpdateForm), new object[] { "我是文本框", "haha" }); } public void DoWork() { Calldelegate(); } private void Form1_Load(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { Thread thread = new Thread(new ThreadStart(DoWork)); thread.Start(); } } }