您的位置:首页 > 其它

委托异步调用

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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: