我有一个场景涉及对电子邮件列表执行相同的处理操作。为了加快处理速度,我正在寻找在我的邮件集合上使用Parallel.ForEach。循环创建我的邮件项处理(clsMailItemProcess)类的实例,并将邮件项传递给它并处理它。
处理每个邮件项的规则包含在数据库模式中,这样可以更轻松地配置规则。在电子邮件中有许多规则来标识参考号,每个规则都有许多可能的方法来识别号码。任务循环执行规则,然后根据首先匹配的规则处理电子邮件。
我正在寻找一些关于使用DbContext的最佳方法的帮助。
我应该指出我的DbContext不会改变,也不会将更改写回数据库。
鉴于:
我应该指出我的DbContext不会改变,也不会将更改写回数据库。
然后:
我应该创建DbContext并将其规则转换为对象,然后我可以根据需要传递给我的应用程序
是。去做。
我会在Parallel.ForEach调用中获得一个新的DbContext。将上下文传递给多个线程可能会有问题,特别是如果您的规则在污染上下文方面存在某种类型的副作用。
你确定这需要并行完成吗?在我的一些宠物项目中,我需要解决类似的工人问题。我会有一个类来轮询集合的变化。当类看到它有工作要做时,它会用它的新工作负载触发clsMailItemProcess。
这将有助于减少复杂性(好吧,它应该),以及让我隔离我的clsMailItemProcess代码。