.NET ------ 多线程的简单使用

2021-04-21 12:27

阅读:671

标签:方法   bsp   dbn   pup   sql   content   选择   图片   ring   

主要就是引用线程,实例化一个线程将需要执行的一个方法交给他,启动,执行完后自动关闭也可以手动关闭

//引用
using System.Threading;

使用

 //实例化一个线程
 Thread t1 = new Thread(CopyGongZi);

 //启动
   t1.Start();

注意,在线程中执行的方法要借助,静态变量进行赋值

技术图片

 

 

 

    protected void btnAddUpt_Click(object sender, EventArgs e)
    {
        bllmdXinZiJiXiao bllmdXinZiJiXiao = new bllmdXinZiJiXiao();
        bllmdJiangJinList bllmdjiangjinlist = new bllmdJiangJinList();

        //bllmdJieSuanTitle bllmdjiesuantitle = new bllmdJieSuanTitle();

        string sqlUptlast = string.Empty;//修改-判断重复数据时使用


        string sCopyTitle = this.WebCtrl_JieSuanTitle2._HidJieSuanGuid;
        if (sCopyTitle == string.Empty)
        {
            WebMessageBox1.MessageBox_tishi(600, 300, 200, 100, "请选择需复制的标题");
            return;
        }

        //.GetListSelmdGongZi3("YearMouth", base.EnterpriseGuid, " and YearMouth=‘" + sYearMonth + "‘");
        // List mList = _bllJiSuanTitle.GetListSelmdJieSuanTitle3("Year");
        List mList = _bllGongZi.GetListSelmdGongZi3("YearMouthTitle", base.EnterpriseGuid, " and Ext09=‘" + this.WebCtrl_JieSuanTitle2._HidJieSuanGuid + "");
        if (mList.Count > 0)
        {
            WebMessageBox1.MessageBox_tishi(600, 300, 200, 100, "复制后的标题已存在,请重新选择");
            return;
        }
        _xdeptguid = _XUserLogin.UserLoginOrganizationGuid;
        _xdeptcode = _XUserLogin.UserLoginOrganizationCode;
        _xdeptname = _XUserLogin.UserLoginOrganizationName;
        _xHidJieSuanMonth = this.WebCtrl_JieSuanTitle2._HidJieSuanMonth;
        _xHidJieSuanTitle = this.WebCtrl_JieSuanTitle2._HidJieSuanTitle;
        _xHidJieSuanGuid = this.WebCtrl_JieSuanTitle2._HidJieSuanGuid;
        xEnterpriseGuid = base.EnterpriseGuid;
        _xJianjinGuid = _JianjinGuid;
        xEnterpriseCode = base.EnterpriseCode;
        xEnterpriseName = base.EnterpriseName;
        xUserLoginGuid = _XUserLogin.UserLoginGuid;
        xUserLoginID = _XUserLogin.UserLoginID;
        xUserIP = _XUserLogin.UserIP;

        ITEM.Model.qdMis4.mdGongZi mold = _bllGongZi.GetModelSelmdGongZi3("GongZiSort,GongZiGuid", xEnterpriseGuid, _xJianjinGuid);
        xOld_GongZiSort = mold.GongZiSort;
        xOld_GongZiGuid = mold.GongZiGuid;

        _GongZiGuid_new = Guid.NewGuid().ToString();
        _GongZiGuid_old = xOld_GongZiGuid;// mold.GongZiGuid;

        //进行真正复制操作
        Thread t1 = new Thread(CopyGongZi); //实例化一个线程
        t1.Start(); //启动

        //查看
        Thread t2 = new Thread(GetChange); //实例化一个线程
        t2.Start(); //启动
        Response.Redirect("../qdExcel/ExcelMessage.aspx");



    }

    #region 设置静态变量进行赋值

    private static string _GongZiGuid_new;
    private static string _GongZiGuid_old;
    public static string _xdeptguid;
    private static string _xdeptcode;
    private static string _xdeptname;
    private static string _xHidJieSuanMonth;
    private static string _xHidJieSuanTitle;
    private static string _xHidJieSuanGuid;
    private static string _xJianjinGuid;
    private static string xEnterpriseGuid;
    private static string xEnterpriseCode;
    private static string xEnterpriseName;

    private static string xUserLoginGuid;
    private static string xUserLoginID;
    private static string xUserIP;
    private static string xOld_GongZiSort;
    private static string xOld_GongZiGuid;

    #endregion


    private void CopyGongZi()
    {
        #region 调用字段对应关系
        {
            string sGongZiGuid = string.Empty;
            //第一步,保存标题
            int k = 0;

            #region GongZi
            mdGongZi mdgongzi = new mdGongZi();
            mdgongzi.GongZiGuid = _GongZiGuid_new;// this.tbGongZiGuid.Text.Trim();//工资关键字
            mdgongzi.QiyeGuid = base.EnterpriseGuid;//云端标识关键字
            mdgongzi.QiyeCode = base.EnterpriseCode;//云端标识编码
            mdgongzi.QiyeName = base.EnterpriseName;//云端标识名称
            mdgongzi.DeptGuid = _xdeptguid;// _XUserLogin.UserLoginOrganizationGuid;//单位Guid
            mdgongzi.DeptCode = _xdeptcode;// _XUserLogin.UserLoginOrganizationCode;//单位编码
            mdgongzi.DeptName = _xdeptname;// _XUserLogin.UserLoginOrganizationName;//单位名称
            mdgongzi.YearMouth = _xHidJieSuanMonth;// this.WebCtrl_JieSuanTitle2._HidJieSuanMonth; //sYearMonth;// this.tbYearMouth.Text.Trim();//年月标识,格式yyyyMM
            mdgongzi.YearMouthTitle = _xHidJieSuanTitle;// this.WebCtrl_JieSuanTitle2._HidJieSuanTitle;// tbGongZiTitle.Text.Trim();// sYearMonth + "工资";// this.tbYearMouthTitle.Text.Trim();//工资标题
            mdgongzi.Ext09 = _xHidJieSuanGuid;// this.WebCtrl_JieSuanTitle2._HidJieSuanGuid;// tbGongZiTitle.Text.Trim();// sYearMonth + "工资";// this.tbYearMouthTitle.Text.Trim();//工资标题
            mdgongzi.e_XinZi_ShengHe_i = (int)ITEM.Inherits.Bll.CollEnum_Mis4.e_ShengHe.Enum.待提交;// Convert.ToInt32(this.ddle_XinZi_ShengHe_i.SelectedValue);//工资审核  0待提交 1待审核 2同意 -1打回
            mdgongzi.e_XinZi_ShengHe_s = ITEM.Inherits.Bll.CollEnum_Mis4.e_ShengHe.Enum.待提交.ToString();// this.tbe_XinZi_ShengHe_s.Text.Trim();//工资审核 0待提交 1待审核 2同意 -1打回
            //mdgongzi.XinZi_ShengHe_UserGuid = this.tbXinZi_ShengHe_UserGuid.Text.Trim();//工资审核人Guid
            //mdgongzi.XinZi_ShengHe_UserLoginID = this.tbXinZi_ShengHe_UserLoginID.Text.Trim();//工资审核人LoginID
            //mdgongzi.XinZi_ShengHe_Date = Convert.ToDateTime(this.tbXinZi_ShengHe_Date.Value);//工资审核时间
            //mdgongzi.XinZi_ShengHe_Remark = this.tbXinZi_ShengHe_Remark.Text.Trim();//工资审核说明
            //mdgongzi.Remark = this.tbRemark.Text.Trim();//备注
            //ITEM.Model.qdMis4.mdGongZi mold = _bllGongZi.GetModelSelmdGongZi3("GongZiSort", xEnterpriseGuid, _xJianjinGuid);
            mdgongzi.GongZiSort = xOld_GongZiSort;// mold.GongZiSort;
            mdgongzi.Flag = 0;//数据标识
            //mdgongzi.Flag_Remark = this.tbFlag_Remark.Text.Trim();//Flag标识说明,推荐使用枚举
            mdgongzi.OrderBy = 0;//排序编号
            mdgongzi.IsEnabled = 0;//是否禁用0-启用1-禁用
            mdgongzi.IsDelete = 0;//逻辑删除0-正常1-删除
            mdgongzi.CreateUserID = xUserLoginID;// _XUserLogin.UserLoginID;//数据创建者登录用户名
            mdgongzi.CreateUserGuid = xUserLoginGuid;// _XUserLogin.UserLoginGuid;//数据创建者的关键字Guid
            mdgongzi.Create_IP = xUserIP;// base.GetIp();//数据创建者IP地址
            mdgongzi.CreateTime = DateTime.Now;//创建时间
            mdgongzi.UpdateUserID = xUserLoginID;// _XUserLogin.UserLoginID;//数据修改这的登录用户名
            mdgongzi.UpdateUserGuid = xUserLoginGuid;// _XUserLogin.UserLoginGuid;//数据修改者的关键字Guid
            mdgongzi.Update_IP = xUserIP;// base.GetIp();//数据修改者IP地址
            mdgongzi.UpdateTime = DateTime.Now;//最后一次修改时间
            sGongZiGuid = mdgongzi.GongZiGuid;


            k = _bllGongZi.SetAddmdGongZi(mdgongzi);
            #endregion

            //第二步,导入数据
            #region copy
            if (k > 0)
            {
                try
                {
                    Dictionarystring, string> dic = new Dictionarystring, string>();
                    dic.Add("GongZiListGuid", "{Guid}");
                    dic.Add("GongZiGuid", sGongZiGuid);


                    dic.Add("Ext09", _xHidJieSuanGuid);
                    dic.Add("YearMouth", _xHidJieSuanMonth);
                    dic.Add("YearMouthTitle", _xHidJieSuanTitle);
                    //dic.Add("YearMouth", this.tbYearMouth.Value.Trim());
                    //dic.Add("YearMouthTitle", tbGongZiTitle.Text.Trim());
                    string sError = string.Empty;
                    int kk = _bllFileds.Set_Ex_DataCopy(xEnterpriseGuid, xEnterpriseCode, xEnterpriseName, "1", " GongZiGuid=‘" + _xJianjinGuid + "", dic, xUserLoginGuid, xUserLoginID, xUserIP, ref sError);
                    if (kk > 0)
                    {
                        WebMessageBox1.MessageBox_tishi(600, 300, 200, 100, "工资复制成功,请在待提交中查看");
                        //string script = string.Empty;
                        //script += "//script += base.GetSrcriptContentByClick("btnSearch");
                        //script += "parent.WebPopupCancel();";
                        //ClientScript.RegisterClientScriptBlock(this.GetType(), "WebPopupCancel", script);
                    }
                    else
                    {
                        WebMessageBox1.MessageBox_tishi(600, 300, 200, 100, "工资复制失败");
                        int kkk = _bllGongZi.SetDelmdGongZi(sGongZiGuid, xUserLoginGuid, xUserLoginID, xUserIP);
                    }
                }
                catch
                {
                    WebMessageBox1.MessageBox_tishi(600, 300, 200, 100, "工资复制失败");
                    int kk = _bllGongZi.SetDelmdGongZi(sGongZiGuid, xUserLoginGuid, xUserLoginID, xUserIP);
                }
            }
            else
            {
                WebMessageBox1.MessageBox_tishi(600, 300, 200, 100, "工资复制失败");
                int kk = _bllGongZi.SetDelmdGongZi(sGongZiGuid, xUserLoginGuid, xUserLoginID, xUserIP);
            }
            #endregion
        }
        #endregion
    }

    private void GetChange()
    {
        while (true)
        {
            string strsql1 = "select count(*) from tbmdGongZiList where QiyeGuid=‘" + xEnterpriseGuid + "‘ and GongZiGuid=‘" + _GongZiGuid_new + "";
            string strsql2 = "select count(*) from tbmdGongZiList where QiyeGuid=‘" + xEnterpriseGuid + "‘ and GongZiGuid=‘" + _GongZiGuid_old + "";

            object obj1 = _bllGongZiList.GetScalarByTx(strsql1);
            object obj2 = _bllGongZiList.GetScalarByTx(strsql2);
            if (obj1 != DBNull.Value && obj2 != DBNull.Value)
            {
                base.ExcelUpLoadMessage = "当前正在复制:" + obj1.ToString() + " / " + obj2.ToString();
            }
            else
            {
                return;
            }

            if (obj1 == obj2)
            {
                base.ExcelUpLoadMessage = "复制运算完毕,共更新了" + obj1.ToString() + "条数据,点击这里返回";
                return;
            }
        }
    }

 

.NET ------ 多线程的简单使用

标签:方法   bsp   dbn   pup   sql   content   选择   图片   ring   

原文地址:https://www.cnblogs.com/obge/p/13274659.html


评论


亲,登录后才可以留言!