异步委托

  示例程序中,用异步线程判断用户名、密码是否正确,并显示在界面上。 

 1         protected void button1_Click(object sender,EventArgs e)
 2         {
 3             //用户名、密码
 4             string userName = txtName.Text;
 5             string userCode = txtCode.Text;
 6             
 7             //定义委托,返回判断结果字符串
 8             Func<string ,string ,string> d1 = (name, code) =>           
 9                  (name == "1" && code == "1") ? "成功" : "失败";                            
10                 
11             //异步调用            
12             d1.BeginInvoke(userName,userCode,ar=>
13                            {
14                                //回调函数
15                                //拿判断结果
16                                string result= d1.EndInvoke(ar);
17                                //再次用委托(避免跨线程访问控件错误)显示结果。实际应用中可能是关闭遮罩,显示结果等
18                                Action<string> action1=data=>label1.Text=data;
19                                Invoke(action1,result);
20                            },
21                            null);
22         }

 

posted @ 2015-08-03 17:21  David Huang  阅读(197)  评论(0编辑  收藏  举报