Linq 2 SQL并行处理

时间:2012-12-13 13:15:59

标签: c# multithreading linq-to-sql parallel-processing

我有一个长期运行的任务,可以从多线程中受益。

每个线程都会随着时间的推移添加一个L2S实体,每个线程都需要访问该实体中的属性。

由于实体的单个实例的这种要求,每个线程很难使用多个datacontexts。 是否有一种推荐的方式来实现这种情况?

在使用Linq to SQL之前,我在经过一定数量的并行迭代后序列化为XML。这工作正常,但数据变得更加复杂,需要SQL中的关系/查询;

一些其他信息: 任务是分析视频帧以找到相似帧的序列。 Media,Frame和Shot有表格。 具有多个帧和镜头的媒体 具有多个帧的镜头; 帧提取和比较是处理器密集型操作,并受益于多线程。

问题是,对于每个提取的帧。它需要将它自身与之前和之后的帧进行比较。前/后帧可能来自单独的线程。 因此,将帧和镜头插回到正在处理的单个Media对象中意味着将来自多个数据上下文的实体组合为1。

1 个答案:

答案 0 :(得分:0)

我没有解决并行的Linq问题,而是更改了流程。

而不是尝试从多个线程同时访问相同的项目列表。我已经拆分了项目列表并为每个部分分配了一个帖子。

这样,每个线程都可以在自己的列表中执行操作,而不会相互碰撞。 然后我写了一个整理方法来整理列表之间的连接。