Parallel.foreach杀死线程进程

时间:2014-06-01 15:58:44

标签: c# multithreading parallel-processing parallel.foreach

这是我的代码:

 [ThreadStatic]
private static WebShopEntities _data;

    public static WebShopEntities data
    {
        get
        {
            if (_data == null)
            {
                _data = new WebShopEntities();
            }
            return _data;
        }
    }
Parallel.ForEach(list,item =>
        {

                data.dp_articles.Add(new dp_articles
                {
                    prom_erp_partno = item.prom_erp_partno,
                    prom_mfm_partno = item.prom_mfm_partno,
                    prol_name = item.prol_name,
                    mfm_short_name = item.mfm_short_name,
                    prom_prfm_id = item.prom_prfm_id
                });
            }

            data.SaveChanges();

        });

完成工作后,Cpu使用率为99%,线程不会被软件自动杀死! 我搜索的足够但没有找到我! 我怎么解决这个问题 ?

1 个答案:

答案 0 :(得分:3)

您正在同时使用您的ORM。这不受支持。你不能将任意代码填充到并行循环中。