C#委托基础系列原于2011年2月份发表在我的新浪博客中,现在将其般至本博客。
例一
- delegate void AppendStringCallback(string text);
-
-
private void AppendString(string txt)
- {
-
this.listView1.Items.Add(txt);
- }
-
-
-
private void ReceiveDate()
- {
-
AppendStringCallback appendStringCallback = new AppendStringCallback(AppendString);
-
this.Invoke(appendStringCallback, new object[]
-
{ string.Format("{0},{1},{2}", str1, str2 + "号", iepAddress.ToString()) });
- }
-
例二
- namespace ThreadPoolDemo
- {
-
public partial class ThreadForm : Form
- {
-
-
private delegate void SetProgressBarValue(int value);
-
-
-
-
private void SetProgressValue(int value)
- {
- progressBar.Value = value;
- }
-
-
-
private void RunWithInvoke()
- {
-
int value = progressBar.Value;
-
while (value< progressBar.Maximum)
- {
-
-
if (InvokeRequired)
- {
-
this.Invoke(new SetProgressBarValue(SetProgressValue), value++);
- }
-
else
- {
- progressBar.Value = ++value;
- }
- }
- }
-
-
public ThreadForm()
- {
- InitializeComponent();
- }
-
-
private void btnInvoke_Click(object sender, EventArgs e)
- {
- progressBar.Value = 0;
-
Thread thread = new Thread(new ThreadStart(RunWithInvoke));
- thread.Start();
- }
-
- }
- }
细节可以参看我的新浪博客 http://blog.sina.com.cn/s/blog_67aaf4440100omf1.html
本文参考自金旭亮老师的《.NET 4.0面向对象编程漫谈》有关代理的内容
本文转自IT徐胖子的专栏博客51CTO博客,原文链接http://blog.51cto.com/woshixy/1071025如需转载请自行联系原作者
woshixuye111