Parallel.ForEach平行线程中的实体的值在输出或打印时二次赋值是可能会串
来源:互联网 发布:东莞金域名苑 编辑:程序博客网 时间:2024/06/05 20:26
今天用平行线程跑了一给程序,大致的程序业务为:我需要对商品先的商品图片进行遍历和操作,所以我先把商品实体集合装入平行线程的循环中,其次在循环商品的同时,根据商品 ID获取到该商品下的图片实体集合,然后遍历图片实体集合,将商品 ID和图片ID写入日志,结果发现,商品ID不一致。
这可能是微软平行线程中的一个bug, 绕开这种问题则查询出商品图片,同时将商品 ID也装入商品图片集合中,这样输出是商品 ID和商品图片ID才相对于。
平行线程中又嵌套循环,使用时注意了。
以下是实体值串了的主体代码。
//遍历商品
Parallel.ForEach(listJavaProduct, (m, loopState) =>
{
listJavaImage = dal.GetJavaImageList(productID, ref strMessage);//获取到该商品下的图片集合
Thread.Sleep(5);//休眠5毫米,注意是停顿下测试效果好些
foreach (var pic in listJavaImage)//遍历商品图片
{
log.Info("商品ID:" + m.ID + "实际的商品ID:" + pic.ID + "商品图片ID:" + pic.ImageID);
}
});
以下是实体值串了的部分日志
商品ID:6345 - 实际的商品ID : 2商品图片ID:102717
商品ID:9310 - 实际的商品ID :6 商品图片ID:54114
商品ID:9322 - 实际的商品ID :3 商品图片ID:97914
商品ID:9310 - 实际的商品ID :4 商品图片ID:97916
商品ID:9310 - 实际的商品ID :4 商品图片ID:97918
商品ID:9310 - 实际的商品ID :4 商品图片ID:97920
- Parallel.ForEach平行线程中的实体的值在输出或打印时二次赋值是可能会串
- 平行运算:Parallel.For、Parallel.Foreach的体验式试用
- Reporting Service 在打印或预览时可能会导致出现空白页的原因
- .NET 4.0中的Parallel.For 和 Parallel.ForEach的用法
- perl的foreach赋值是引用
- DetailsView绑定后,如何根据数据库返回1 或2的值在页面赋值 是或否
- makefile 在makefile中打印输出信息的方法是
- Parallel.ForEach
- URAL 1981. Parallel and Perpendicular 对角线的平行和垂直
- python平行(3):【parallel python】与【sklearn joblib的parallel和delayed】性能对比
- Java中的类,成员变量的值,在声明的时候直接赋值与在构造函数中再赋值,这个是无所谓的,还是有什么规矩?
- PHP在foreach中对$value赋值无效的问题
- DAMO在启动或初始化时可能会挂起
- Maven2编译时“是 Sun 的专用 API,可能会在未来版本中删除”错误解决
- jsp页面iterator或forEach循环输出list值
- C++实现线程同步的几种方式 线程同步是指同一进程中的多个线程互相协调工作从而达到一致性。之所以需要线程同步,是因为多个线程同时对一个数据对象进行修改操作时,可能会对数据造成破坏,下面是多
- 几个检查当前运行的LINUX是在VM还是在实体机中的方法
- 几个检查当前运行的Linux是在VM还是在实体机中的方法
- 无源汇上下界可行流模版
- C++ Qt 11:文本编辑器——拖放技术
- float高度不一致 导致错位的解决办法
- JS复选框操作
- 15项最佳电子产品影响人类未来
- Parallel.ForEach平行线程中的实体的值在输出或打印时二次赋值是可能会串
- java.lang.Instrumentation作用,虚拟机监控
- JQuery Mobile实现动态下拉框代码
- rman 同机复制数据库
- python的 Digango框架的安装
- FFplay 整体流程图
- mysql dump binlog master状态
- rman 异机复制数据库
- 开关电源基本知识