| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 780 人关注过本帖
标题:C# 异步委托
只看楼主 加入收藏
封闭
Rank: 9Rank: 9Rank: 9
来 自:广东省汕头市
等 级:蜘蛛侠
威 望:1
帖 子:501
专家分:1084
注 册:2007-9-14
结帖率:80%
收藏
 问题点数:0 回复次数:5 
C# 异步委托
谁能帮我讲解下 C # 中的异步委托呢。。

很不理解,一头雾水。

麻烦了!
搜索更多相关主题的帖子: 委托 异步 
2010-04-05 15:38
qubo1982
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:367
专家分:1132
注 册:2009-3-18
收藏
得分:0 
异步委托 BeginInvoke、EndInvoke
BeginInvoke方法,开始异步委托,不等待调用结果直接运行下一条语句。
EndInvoke方法,用于检索调用结果。调用BeginInvoke后可随时调用 EndInvoke 方法;如果异步调用未完成,EndInvoke 将一直阻塞到异步调用完成。
2010-04-05 15:54
qubo1982
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:367
专家分:1132
注 册:2009-3-18
收藏
得分:0 
个人感觉不管是异步委托还是同步委托,一般都是用于多线程中,从不是创建对象的线程来控制对象
比如你在FORM中有一个TextBox1,然后开了一个线程算运一些东西,在这个线程中要在TextBox1添加内容
如果是直接在这个事件中写TextBox1.AppendText("aaa")那程序是会报错的,这个时候就可以用到异步或同步委托了
程序代码:
//先创建一个委托
delegate void AppendMessage(string mess);
AppendMessage AppendMess;

//委托要调用的方法
        void AppendOldText(string mess)
        {
            textBox1.AppendText(mess);
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            //实例化委托
            AppendMess = new AppendMessage(AppendOldText);
        }

        //这是事件的对象是在一个新的线程中运行的
        private void threadParser_NewMessage(object sender, string message)
        {
            if (textBox1.InvokeRequired)
            {
                //这里我不需要在委托完成后做一些事情所以用的是同步委托
                textBox1.Invoke(AppendMess, message);
            }
            else
                textBox1.AppendText(message);
        }
2010-04-05 16:13
封闭
Rank: 9Rank: 9Rank: 9
来 自:广东省汕头市
等 级:蜘蛛侠
威 望:1
帖 子:501
专家分:1084
注 册:2007-9-14
收藏
得分:0 
意思也就是说 使用异步委托,程序是在后台运行的。对我们的程序也么有任何的影响咯?
2010-04-06 18:58
qubo1982
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:367
专家分:1132
注 册:2009-3-18
收藏
得分:0 
差不多吧,说法不太准确,不是后台运行,是开了一个新的线程,
开始异步的时候,程序会从线程池中自己分配一个新的线程来运行委托
2010-04-07 08:42
封闭
Rank: 9Rank: 9Rank: 9
来 自:广东省汕头市
等 级:蜘蛛侠
威 望:1
帖 子:501
专家分:1084
注 册:2007-9-14
收藏
得分:0 
恩。。
谢谢拉。
2010-04-07 19:09
快速回复:C# 异步委托
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.062963 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved