///
///委托类异步调用
///
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);
}