码迷,mamicode.com
首页 > 其他好文 > 详细

异步无阻塞委托 学习1

时间:2015-11-12 23:18:48      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Remoting.Messaging;
using System.Threading;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication21
{
public partial class WebForm1 : System.Web.UI.Page
{
public delegate string testHandler();

public delegate void aa(object sender, SelectEventArgs e);

public event aa ea;

protected void Page_Load(object sender, EventArgs e)
{
ea += WebForm1_ea;
if (Request["_method"] == "search")
{

testHandler t = test;

IAsyncResult result= t.BeginInvoke(callback, t);

}

}

 

private void WebForm1_ea(object sender, SelectEventArgs e)
{

string r = e.DataSource;
}

 

private void callback(IAsyncResult tag)
{
AsyncResult result = (AsyncResult)tag;

// 取得委托
testHandler del = (testHandler)result.AsyncDelegate;

// 取得委托后,我们需要在其上执行EndInvoke。
// 这样就可以取得函数中的执行结果。
string strReturnValue = del.EndInvoke(result);
var onAfterSelect = this.ea;
onAfterSelect?.Invoke(this, new SelectEventArgs(strReturnValue));
}

 

public string test( )
{
return "tt";
}
}
public class SelectEventArgs : EventArgs
{
private string _dataSource = null;
public string DataSource
{
get { return _dataSource; }
}

public SelectEventArgs(String data)
{
_dataSource = data;
}
}
}

异步无阻塞委托 学习1

标签:

原文地址:http://www.cnblogs.com/kexb/p/4960439.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!