c#多线程ThreadPool.QueueUserWorkItem与Lock记录

 public int NextPrintNo
        {
            get
            {
                lock (NextPrintNoLock)
                {
                    int newPrintNo = HeadCompanyDeploy.PrintNo + 1;
                    CompanyRepository companyRepository = new CompanyRepository();
                    companyRepository.UpdateCompanyDeployPrintNo(HeadCompanyDeploy.OrgID, newPrintNo);
                    HeadCompanyDeploy.PrintNo = newPrintNo;

                    //此方法加入线程队列的时间很快会产生垃圾数据
                    //即便在外层套一个lock也是无效的,因为它很快
                    //ThreadPool.QueueUserWorkItem(obj =>
                    //{
                    //    try
                    //    {
                    //        IDID ids = obj as IDID;
                    //        int newPrintNo = ids.ID2 + 1;
                    //        CompanyRepository companyRepository = new CompanyRepository();
                    //        companyRepository.UpdateCompanyDeployPrintNo(ids.ID1, newPrintNo);
                    //        HeadCompanyDeploy.PrintNo = newPrintNo;
                    //    }
                    //    catch { }
                    //}, new IDID(HeadCompanyDeploy.OrgID, HeadCompanyDeploy.PrintNo));

                    return HeadCompanyDeploy.PrintNo;
                }
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值