惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 聂微东
MyScale Blog
MyScale Blog
The GitHub Blog
The GitHub Blog
C
Check Point Blog
M
MIT News - Artificial intelligence
U
Unit 42
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
H
Help Net Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
D
DataBreaches.Net
大猫的无限游戏
大猫的无限游戏
D
Docker
Last Week in AI
Last Week in AI
IT之家
IT之家
F
Fortinet All Blogs
A
About on SuperTechFans
P
Proofpoint News Feed
The Cloudflare Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
B
Blog RSS Feed
博客园_首页
月光博客
月光博客
博客园 - 司徒正美
Y
Y Combinator Blog

博客园 - 瑞德船长

Visual C#如何使用Active X组件 Ext.form.ComboBox setValue()初始值设定问题 Ext.tree.TreePanel 在IE下不正常加载 - 瑞德船长 - 博客园 Windows mobile 开发入门—控件开发(漂亮的进度条) Windows mobile 开发入门—GPS程序的开发 Windows mobile 开发入门—网络程序的开发 Windows mobile 开发入门—开发绚丽滑动效果 Windows mobile 开发入门—第一个程序"hello world",链接调试,模拟器的使用 Windows mobile 开发入门—环境搭建 短信PDU编码解码(转) 发布一个小工具:建立站点和域名绑定(附代码) 实用JavaScript脚本代码大全 - 瑞德船长 - 博客园 动态创建DataGrid 列排序功能的实现 多表头 Active report-在Web 上使用 active report Mediar.framework--Search 功能 微软RC2CryptoServiceProvider 加密的疏忽 Mediar.Framework—业务的实现3 (控制UI控件的可视和可编辑属性、验证、以及一对一,一对多,多对多关系) Mediar.Framework—业务的实现2(UI 与对象实体的通信)
委托(delegate)的异步调用
瑞德船长 · 2007-12-21 · via 博客园 - 瑞德船长

 private void ButAbout_Click(object sender, EventArgs e)
        
{
            TestInvoke();
        }


        
public void TestInvoke()
        
{

            System.Func
<stringstring> convertMethod = UppercaseString;
          
           
            convertMethod.BeginInvoke(name, 
new AsyncCallback(sendMessageHandleBack), convertMethod);

         
        }

        
string name = "Dakota";
        
void sendMessageHandleBack(IAsyncResult ar)
        
{
            System.Func
<stringstring> dlgt = (System.Func<stringstring>)ar.AsyncState;

            
string ret = dlgt.EndInvoke(ar);

          
// int ret= dlgt.EndInvoke<string,int>(sendMessageHandleBack);

            NewMethod(ret);


        }


       
private delegate void    NewMethodHandle(string ret);
        
private void NewMethod(string ret)
        
{
            
this.BeginInvoke(new NewMethodHandle(NewMethod2), new object[] { ret });
        
        }


        
private void NewMethod2(string ret)
        
{         
            
this.textBox1.Text = ret;
        }


        
private static string UppercaseString(string inputString)
        
{
            Thread.Sleep(
4000);
            
return inputString;
        }