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

推荐订阅源

雷峰网
雷峰网
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Tailwind CSS Blog
F
Fortinet All Blogs
Microsoft Azure Blog
Microsoft Azure Blog
Jina AI
Jina AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
N
Netflix TechBlog - Medium
B
Blog RSS Feed
Blog — PlanetScale
Blog — PlanetScale
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
The Blog of Author Tim Ferriss
D
Docker
博客园 - 聂微东
博客园 - 【当耐特】
博客园 - 三生石上(FineUI控件)
L
LangChain Blog
量子位
宝玉的分享
宝玉的分享
博客园 - 司徒正美
The Cloudflare Blog
G
Google Developers Blog
Microsoft Security Blog
Microsoft Security Blog
腾讯CDC

博客园 - 瑞德船长

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;
        }