Multithreading 异步获取数据的推荐策略

Multithreading 异步获取数据的推荐策略,multithreading,entity-framework,Multithreading,Entity Framework,假设我需要对数据库执行几个不同的查询。每个查询返回不同的数据。每个查询将在不同于UI线程的线程上执行 我应该为数据库的所有查询设置一个线程,还是可以为每个查询设置一个线程?推荐的做法是什么?单个ObjectContext/DbContext实例不应用于并发数据库访问,因为它不是为这种情况设计的 与不同上下文实例加载的对象交互容易出错,因为所有相关实体实例都应该属于单个上下文实例。否则,必须附着和拆离实体 如果所有操作都是读取操作,则最好使用多个线程来检索数据,而对于CRUD操作,建议使用带有线程

假设我需要对数据库执行几个不同的查询。每个查询返回不同的数据。每个查询将在不同于UI线程的线程上执行


我应该为数据库的所有查询设置一个线程,还是可以为每个查询设置一个线程?推荐的做法是什么?

单个
ObjectContext/DbContext
实例不应用于并发数据库访问,因为它不是为这种情况设计的

与不同上下文实例加载的对象交互容易出错,因为所有相关实体实例都应该属于单个上下文实例。否则,必须附着和拆离实体


如果所有操作都是读取操作,则最好使用多个线程来检索数据,而对于CRUD操作,建议使用带有线程的单个上下文实例。

Hi Eranga。常见的情况是,我们需要加载一组用于CRUD的项,以及一组或多组用于只读访问的项(例如CRUD集的引用)。目前我们所做的是创建新线程,并在该线程上按顺序获取所有数据(使用协同路由)。这意味着数据是以异步方式检索的,但我们没有并行查询。你觉得这种方法行吗?如果不行,你能推荐另一种方法吗?@Goran只要查询是连续的,这种方法就行。