委托异步调用
2009-12-16 17:05
357 查看
///
///委托类异步调用
///
public class CPassportLog
{
private delegate int AsyncAddUserLoginLog(int iPartitionID, Guid UserCode, string strUserName,
int iGameID, int iServerID, DateTime dtLogin, string strIPAddr, out string strErrInfo);
public static int AddUserLoginLog(int iPartitionID,Guid UserCode,string strUserName,
int iGameID,int iServerID,DateTime dtLogin,string strIPAddr, out string strErrInfo){。。。}
static public void BeginAddUserLoginLog(int iPartitionID,Guid UserCode,string strUserName,
int iGameID,int iServerID,DateTime dtLogin,string strIPAddr, AsyncCallback CB)
{
AsyncAddUserLoginLog AddLog = new AsyncAddUserLoginLog(AddUserLoginLog);
string strErrInfo;
IAsyncResult AR = AddLog.BeginInvoke(iPartitionID,UserCode,strUserName,
iGameID,iServerID,dtLogin,strIPAddr,out strErrInfo, CB, AddLog);
}
static public int EndAddUserLoginLog(out string strErrInfo, IAsyncResult AR)
{
AsyncAddUserLoginLog AddLog = (AsyncAddUserLoginLog)AR.AsyncState;
int iRetCode = AddLog.EndInvoke(out strErrInfo, AR);
return iRetCode;
}
}
外部调用:
CPassportLog.BeginAddUserLoginLog(User.PartitionID, User.UserCode, User.UserName,
iGameID, iServerID, DateTime.Now, strIPAddr, CBAddUserLoginLog);
static private void CBAddUserLoginLog(IAsyncResult AR)
{
string strErrInfo;
PassportLib.CPassportLog.EndAddUserLoginLog(out strErrInfo, AR);
}
///委托类异步调用
///
public class CPassportLog
{
private delegate int AsyncAddUserLoginLog(int iPartitionID, Guid UserCode, string strUserName,
int iGameID, int iServerID, DateTime dtLogin, string strIPAddr, out string strErrInfo);
public static int AddUserLoginLog(int iPartitionID,Guid UserCode,string strUserName,
int iGameID,int iServerID,DateTime dtLogin,string strIPAddr, out string strErrInfo){。。。}
static public void BeginAddUserLoginLog(int iPartitionID,Guid UserCode,string strUserName,
int iGameID,int iServerID,DateTime dtLogin,string strIPAddr, AsyncCallback CB)
{
AsyncAddUserLoginLog AddLog = new AsyncAddUserLoginLog(AddUserLoginLog);
string strErrInfo;
IAsyncResult AR = AddLog.BeginInvoke(iPartitionID,UserCode,strUserName,
iGameID,iServerID,dtLogin,strIPAddr,out strErrInfo, CB, AddLog);
}
static public int EndAddUserLoginLog(out string strErrInfo, IAsyncResult AR)
{
AsyncAddUserLoginLog AddLog = (AsyncAddUserLoginLog)AR.AsyncState;
int iRetCode = AddLog.EndInvoke(out strErrInfo, AR);
return iRetCode;
}
}
外部调用:
CPassportLog.BeginAddUserLoginLog(User.PartitionID, User.UserCode, User.UserName,
iGameID, iServerID, DateTime.Now, strIPAddr, CBAddUserLoginLog);
static private void CBAddUserLoginLog(IAsyncResult AR)
{
string strErrInfo;
PassportLib.CPassportLog.EndAddUserLoginLog(out strErrInfo, AR);
}
相关文章推荐
- C#委托的异步调用
- 委托-异步调用-泛型委托-匿名方法-Lambda表达式-事件
- C#构建多线程应用程序(1) —— 使用委托来自动创建次线程以实现异步方法的调用
- NET中级课--浅谈委托,事件,异步调用,回调等概念
- C# 委托的同步调用和异步调用
- 20160711--C# 委托的三种调用示例(同步调用 异步调用 异步回调)【转载】
- 异步调用委托的3种方法
- C#委托的异步调用[转]
- C#多线程实现方法——异步委托/调用(一)
- 使用委托异步调用方法让程序并行运行
- 委托-异步调用-泛型委托-匿名方法-Lambda表达式-事件
- 关于异步委托调用
- c# 委托与异步调用
- c# 委托与事件(二)之异步调用
- 基于委托的异步调用,一个简单的同步调用,以及对AsyncCallback,IAsyncResult,AsyncResult,BeginInvoke,EndInvoke的概述性解释
- Orchard 源码探索(Application_Start)之异步委托调用
- C#委托的同步调用、异步调用、异步回调
- c#委托的异步调用 简单示例
- 委托的异步调用示例(1)
- C#委托的异步调用[转]