C# LINQ2SQL并行处理
我有一个长时间运行的任务,它得益于多线程 随着时间的推移,每个线程都会向中添加一个L2S实体,每个线程都需要访问该实体中的属性 由于需要实体的单个实例,因此很难为每个线程使用多个DataContext。 有没有其他方法可以达到这样的效果 在使用LINQtoSQL之前,我是在经过一系列并行迭代之后序列化为XML的。这很好,但是数据变得更加复杂,需要SQL中可用的关系/查询 其他一些信息: 这项任务是分析视频帧以找到相似帧的序列。 有媒体、帧和快照的表格。 一种具有多帧和快照的媒体 有多帧的镜头; 帧提取和比较是处理器密集型操作,受益于多线程 问题是,对于每个提取的帧。它需要将自身与前后的帧进行比较。前后帧可能来自单独的线程。C# LINQ2SQL并行处理,c#,multithreading,linq-to-sql,parallel-processing,C#,Multithreading,Linq To Sql,Parallel Processing,我有一个长时间运行的任务,它得益于多线程 随着时间的推移,每个线程都会向中添加一个L2S实体,每个线程都需要访问该实体中的属性 由于需要实体的单个实例,因此很难为每个线程使用多个DataContext。 有没有其他方法可以达到这样的效果 在使用LINQtoSQL之前,我是在经过一系列并行迭代之后序列化为XML的。这很好,但是数据变得更加复杂,需要SQL中可用的关系/查询 其他一些信息: 这项任务是分析视频帧以找到相似帧的序列。 有媒体、帧和快照的表格。 一种具有多帧和快照的媒体 有多帧的镜头;
因此,将帧和快照插入正在处理的单个媒体对象意味着将多个数据上下文中的实体合并为1。我改变了过程,而不是解决并行Linq问题 而不是尝试从多个线程同时访问相同的项目列表。我已经拆分了项目列表,并为每个部分分配了一个线程 这样,每个线程都可以根据自己的列表进行操作,而不会相互碰撞。
然后我编写了一个finishing方法来整理列表之间的连接。您对这个对象调用了什么操作?线程之间以何种方式共享?您的实体是单体吗?如果没有,那就做吧。然后,任何数量的数据上下文都可以访问该实体,而无需创建新的实例。该实体表示包含多个表中数据的复杂对象。每个线程根据表中的现有数据和外部源数据向这些表添加条目。