c# 委托之异步调用delegate
2012-02-27 15:22
260 查看
在很多情况下,我们会遇到这种情况,比如做一些日志性质的操作记录,或者数据大批量插入数据库或者其他操作,这个时候用户本身不能等在这里,等执行完之后之后在操作其他的,而是需求异步进行这些操作,所以用到一些异步操作的方法,但是都是根据当时的环境而定用那个形式webservice,thread,委托....等等,
本文中使用的为委托--异步操作, 我们直接上列子,一个往数据库操作的列子
public delegate int DInsertTable(UserModel user)
static void Main(string[] args)
{
UserModel user=new UserModel('llll',23,'164949494')
//指定委托函数
DInsertTable d=new DInsertTable(InsertTable);
//异步操作 user参数 第二个为回调函数,当委托执行完成之后会调用这个回调函数,可以在里边写自己相对应的代码
d.BeginInvoke(user,new AsyncCallback(GoBack),null);
}
//执行方法
static bool InsertTable(UserModel user)
{
//自己的数据操作代码
return true
}
static void GoBack(IAsyncResult isa)
{
AsyncResult a = (AsyncResult)isa;
Ad ad=(Ad)a.AsyncDelegate;
Console.WriteLine("执行完成,返回结果是"+ad.EndInvoke(isa));
}
本文中使用的为委托--异步操作, 我们直接上列子,一个往数据库操作的列子
public delegate int DInsertTable(UserModel user)
static void Main(string[] args)
{
UserModel user=new UserModel('llll',23,'164949494')
//指定委托函数
DInsertTable d=new DInsertTable(InsertTable);
//异步操作 user参数 第二个为回调函数,当委托执行完成之后会调用这个回调函数,可以在里边写自己相对应的代码
d.BeginInvoke(user,new AsyncCallback(GoBack),null);
}
//执行方法
static bool InsertTable(UserModel user)
{
//自己的数据操作代码
return true
}
static void GoBack(IAsyncResult isa)
{
AsyncResult a = (AsyncResult)isa;
Ad ad=(Ad)a.AsyncDelegate;
Console.WriteLine("执行完成,返回结果是"+ad.EndInvoke(isa));
}
相关文章推荐
- c#初学-delegate合并委托(多路广播委托)一个委托进行多个函数调用
- C# 委托的同步调用和异步调用
- C#异步调用委托工具类
- C#委托的异步调用
- C#委托的异步调用[转]
- C# 多线程 用委托实现异步_调用委托的BeginInvoke和EndInvoke方法
- C# 委托的同步调用和异步调用
- C# 委托的三种调用示例(同步调用 异步调用 异步回调)
- C#委托的异步调用【转】
- C#委托的异步调用[转]
- 委托(delegate)的三种调用方式:同步调用,异步调用,异步回调(转载)
- C# 委托的同步调用和异步调用
- C# 委托的同步调用和异步调用
- C#委托的异步调用
- C# 委托的同步调用和异步调用
- C# 异步编程 异步委托调用同步方法
- C#委托的同步调用、异步调用、异步回调
- C# 委托的同步调用和异步调用--抓住重点
- C# 多线程 用委托实现异步_调用委托的BeginInvoke和EndInvoke方法
- 艾伟_转载:C# 委托的同步调用和异步调用