首页 > 解决方案 > Parallel.ForEach 结束了味道,但它不应该这样做

问题描述

那是我的代码片段:

Parallel.ForEach(companies, company =>
{
    using (DatabaseContext dbContextForTask = new DatabaseContextFactory().Create(company.ConnectionString))
    {
        CopingFilesService serviceCopingFilesService = new CopingFilesService(dbContextForTask);
        serviceCopingFilesService.CopyFiles(company.CompanyId);
    }
});

每个公司可以在不同的数据库中。我将大约 20 家公司传递给 Parallel.ForEach - 我为每家公司创建实体框架 DbContext 并复制文件。一开始我看到文件是从 20 家公司复制的,但大约 1 小时后,我看到文件是从 2 家公司复制的。其他公司的任务结束了,但为什么呢?还有文件要复制。

标签: c#

解决方案


推荐阅读