在很多情况下,我们会遇到这种情况,比如做一些日志性质的操作记录,或者数据大批量插入数据库或者其他操作,这个时候用户本身不能等在这里,等执行完之后之后在操作其他的,而是需求异步进行这些操作,所以用到一些异步操作的方法,但是都是根据当时的环境而定用那个形式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));
}