多线程实现异步,工作随便
来源:互联网 发布:ping测试网络什么意思 编辑:程序博客网 时间:2024/04/29 20:30
//0024753: SIS 3.0 - System - Trace User's Program Usage to monitor User's Usage and can help on System Troubleshooting if (!string.IsNullOrEmpty(Request.QueryString["AddPO"])) { if (Request.QueryString["AddPO"].ToString() == "1") { //开启另外一个线程去执行插入log的方法 Thread t = new Thread(new ThreadStart(delegate { Common.AddProgramTraceLog(oUserInfo, PermissionObjectID.Purchase_Order_Maintenance, PermissionOperationID.Button_Add); })); t.Start(); } }
/// <summary>
/// Developer:billyang
/// Date:9/20/2011
/// Mantis:0024753: SIS 3.0 - System - Trace User's Program Usage to monitor User's Usage and can help on System Troubleshooting
/// </summary>
/// <param name="oUserInfo">The o user info.</param>
/// <param name="iObjectId">The i object id.</param>
/// <param name="iOperationId">The i operation id.</param>
public static void AddProgramTraceLog(CRM.ClassInfo.AdminInfo.UserInfo oUserInfo, PermissionObjectID iObjectId, PermissionOperationID iOperationId)
{
string sSQL = "";
string sEnableProgramTraceLog = Global.EnableProgramTraceLog;
try
{
if (sEnableProgramTraceLog.ToUpper() == "YES")
{
CRM.DBUtility.DataAccessManager dam = new CRM.DBUtility.DataAccessManager(CRM.DBUtility.SystemDatabases.JobsDB_Master_ReadWrite, oUserInfo.GetRegionCode(), oUserInfo.GroupProductID);
sSQL = "USP_SIS30_AddProgramTraceLog";
SqlParameter[] sps ={
new SqlParameter("@ObjectId", SqlDbType.Int),
new SqlParameter("@OperationId", SqlDbType.Int),
new SqlParameter("@CreateBy", SqlDbType.Int)
};
sps[0].Value = Convert.ToInt32(iObjectId);
sps[1].Value = Convert.ToInt32(iOperationId);
sps[2].Value = oUserInfo.ACMUserID;
dam.ExecuteNonQuery(CommandType.StoredProcedure, sSQL, sps);
}
else {
return;
}
}
catch (Exception ex)
{
StringBuilder sAddTraceLog = new StringBuilder();
sAddTraceLog.Append("Add Data To ACM_ProgramTraceLog Table");
sAddTraceLog.Append(Environment.NewLine);
sAddTraceLog.Append("SQL: ");
sAddTraceLog.Append(sSQL);
sAddTraceLog.Append(Environment.NewLine);
sAddTraceLog.Append("ex: ");
sAddTraceLog.Append(ex.ToString());
throw new Exception(sAddTraceLog.ToString(), ex);
}
}