问题描述
在下最近开发的一个C#WinForm上传的程序,将文件的信息存入到DataTable中,将DataTable中数据依次写入队列中,通过开辟5个后台线程不断循环的去队列中取文件信息,执行上传操作。通过一个DatagridView绑定DataTable来显示文件上传的信息,文件名,上传进度,上传状态。现在出现一个问题:现在在执行上传的过程中,上传了很多文件,当某些文件完成上传时,点击“清空已完成”按钮时,会出现一个显示错误的问题,如图1 图1当不点击清空已完成按钮,让10张图片自己上传完,结果显示都可以上传成功,如图2 图2//清空已完成按钮的代码UploadDatauld;//上传文件信息对象,指的是某一文件for(inti=dt.Rows.Count-1;i>=0;i--)//遍历DataTable{uld=ListGetAt(i);//从DataTable中获取文件信息if(uld.state.Equals(UploadData.STATE_COMPLETED)==true)//判断文件上传的状态{dt.Rows.RemoveAt(i);//清除DataTable中该文件所在的行_completedCount--;//完成数减一}}
请问下:到底是什么原因引起的问题:是线程引起,还是Datagridview绑定DataTable引起的,高手救急
解决方案
本帖最后由 pp843939 于 2015-09-17 00:00:30 编辑
解决方案二:
调试下,看看_completedCount的变化
解决方案三:
引用1楼devmiao的回复:
调试下,看看_completedCount的变化
_completedCount变化是正常的,
解决方案四:
up一下,
解决方案五:
没有人可以回答下吗
时间: 2024-09-12 07:12:41