·天新网首页·加入收藏·设为首页·网站导航
数码笔记本手机摄像机相机MP3MP4GPS
硬件台式机网络服务器主板CPU硬盘显卡
办公投影打印传真
家电电视影院空调
游戏网游单机动漫
汽车新车购车试驾
下载驱动源码
学院开发设计
考试公务员高考考研
业界互联网通信探索
您现在的位置:天新网 > 软件开发 > .Net开发 > C#
C#委托基础9——Invoke与委托
http://www.21tx.com 2012年11月29日

例一

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       
    {       
        // 定义delegate以便Invoke时使用       
        private delegate void SetProgressBarValue(int value);        
                
        
        // 跟SetProgressBarValue委托相匹配的方法       
        private void SetProgressValue(int value)       
        {       
           progressBar.Value = value;       
        }       
        
        // 使用Invoke方法来设置进度条       
        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();       
        }        
        
     }       
}

本文出自 “IT Fat Man” 博客,请务必保留此出处http://woshixy.blog.51cto.com/5637578/1071025

上一篇: C#委托基础8——lambda表达式
下一篇: C#委托基础7——匿名方法

关于我们 | 联系我们 | 加入我们 | 广告服务 | 投诉意见 | 网站导航
Copyright © 2000-2011 21tx.com, All Rights Reserved.
晨新科技 版权所有 Created by TXSite.net