110,535
社区成员
发帖
与我相关
我的任务
分享
backWrok.DoWork += new DoWorkEventHandler((sender, args) =>
{
List<Hashtable> listResultAll = new List<Hashtable>();
for (int p = 1; p <= pageCount; p++)
{
try
{
listResultAll.AddRange(BatchSend(claimList.Skip((p - 1) * groupNum).Take(groupNum).ToList(), ref prcoCount));
}
catch
{
throw;
}
}
args.Result = listResultAll;
});
int subCount = sendData.Count;
List<Hashtable> listRelust = new List<Hashtable>();
foreach (ClaimDocument data in sendData)
{
//函数定义
//AsyncClaimSend(ClaimDocument data, AsyncClaimSendCompleted callBack)
AsyncClaimSend(data, (result) =>
{
try
{
listRelust.Add(result);//List<T>.Add()的问题????
}
catch (Exception ex)
{
//在这个exception中 提示错误信息
MessageBox.Show(ex.Message);
}
lock (this)
{
subCount--;
}
});
}
while (subCount > 0)
{
continue;
}
prcoCount += listRelust.Count;
SetMessageText(string.Format("已处理了{0}条数据\r\n", prcoCount), (int)(((decimal)prcoCount / (decimal)totalCount) * 100));
return listRelust;
大致代码如上,我找了下 有人说是 List<T>.Add();当内部数组长度不够的时候,会新建数组,拷贝原有数组
,但是我用小程序 测试这个方法,增加10W个People对象,也没出现异常呢??