DataTable 内部索引已损坏:“5”

今天调试程序时遇到这个exception,网上查了下资料,遇到的人还不少,

后面带的数字还有不一样的,自己模拟了下,发现,在多线程下同时对表进行插入操作就会产生“5”的错误

 

ContractedBlock.gif ExpandedBlockStart.gif Code
        private void button2_Click(object sender, EventArgs e)
        {
            Thread t1 
= new Thread(new ThreadStart(update));
            t1.IsBackground 
= true;

            Thread t2 
= new Thread(new ThreadStart(update));
            t2.IsBackground 
= true;

            t1.Start();
            t2.Start();
        }

        
private void update()
        {
            DataSet1.First_TableRow ftr 
= ftdt.NewFirst_TableRow();
            ftr.name 
= "****";
            ftr.phone 
= "123456";
            ftr.rectime 
= DateTime.Now;
            ftr.address 
= "address";
            ftdt.AddFirst_TableRow(ftr);
        }

 

多线程产生的异常,解决办法只能对这个方法进行下包装了,lock住,一个一个操作就ok了

转载于:https://www.cnblogs.com/chenzhou851025/archive/2008/09/24/1297932.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值