C#委托
2017-01-26 10:14
274 查看
委托类型1
protected delegate void UpdateControlText(string strText); //定义一个委托 //定义更新控件的方法 protected void updateControlText(string strText) { this.label1.Text = strText; return; } private void button1_Click(object sender, EventArgs e) { Thread ff = new Thread(new ThreadStart(x1)); ff.Start(); } private void x1()//线程安全的访问窗体控件 { for (int i = 0; i < 1000; i++) { long xx = Convert.ToInt32(this.label1.Text); if (this.InvokeRequired) { //用更新控件的方法updateControlText实例化一个委托update UpdateControlText update = new UpdateControlText(updateControlText); this.Invoke(update, Convert.ToString(++xx)); //调用窗体Invoke方法 } else { this.label1.Text = Convert.ToString(++xx); } } }
委托类型2
protected delegate void UpdateControlText(string strText); //定义一个委托 //定义更新控件的方法 protected void updateControlText(string strText) { this.textBox1.AppendText ( strText+"\r\n"); return; } private void button1_Click(object sender, EventArgs e) { Thread ff = new Thread(new ThreadStart(x1)); ff.Start(); } private void x1()//线程安全的访问窗体控件 { UpdateControlText update = new UpdateControlText(updateControlText); for (int i = 0; i < 1000; i++) { //用更新控件的方法updateControlText实例化一个委托update this.Invoke(update, i.ToString()); //调用窗体Invoke方法 } }
protected delegate void workdelegate(int i);//方法外 workdelegate work_test;//方法外 //使用委托 //this.Invoke(work_test, int.Parse(i.ToString()));//这个安全 //work_test.BeginInvoke(int.Parse(i.ToString()));//异步委托
相关文章推荐
- C#时间戳转时间-时间转时间戳
- C#字符串操作 取文本左边 取文本右边 取文本中间 取文本中间到List集合 指定文本倒序
- mstsc 远程序桌面登录的 c#开发
- c#如何实现一个线程暂停,等待用户输入文本后继续运行?
- 4000 C#的引用类型和值类型
- C#常用命令库(备用)
- C#90课的主要内容
- C#之对象数组排序
- c#字符串切割split使用方法
- rest api+C#
- c#不同数组之间的转换【转载,消化自动删除】
- C# 事件
- C# 操作符??和?:
- C#配置IIS站点
- [C#.Net]启动外部程序的几种常用方法汇总
- 高精度动画播放控件
- C# 扩展方法整理
- C#的Socket实现UDP协议通信示例代码
- C#中WinForm控件的拖动和缩放的实现代码
- C#常见应用函数实例小结