【发布时间】:2014-07-29 23:22:28
【问题描述】:
我有一个需求,我需要在并行执行流程中进行一些同步处理。
我有一些在 Parallel foreach 中工作的任务。现在我需要做的是,在这之间做一些数据库更新。 我不想使用 async 和 await 来完成,因为这会调用多个线程并加载我的服务器。
由于这些数据库更新对我很重要,但我不希望它们阻塞我的主要执行流程。 我想要实现的是数据库更新应该始终在同一个线程上同步完成,这样可以加快主流程。
在我使用任务时这可能吗?如果是这样,任何人都可以提出相同的建议。
【问题讨论】:
-
如果您希望它们同步完成,只需同步运行它们。有什么问题?
-
你能发布一些示例代码吗?目前尚不清楚您要做什么以及问题是什么。
-
async/await并不意味着多线程。您可以轻松地在ActionBlock<T>中使用异步数据库访问(请参阅 dcastro 的回答),并且一次只会保存一次(异步)。 -
卢安:谢谢你的回复。基本上问题是,每次并行执行都会调用它,它会生成新线程。这是我想要避免的。
标签: c# multithreading task-parallel-library