我有一个看起来像这样的方法执行查询:多线程:启动一个线程,而另一个进程不断去
public void SomeMethod()
{
foreach (SomeModel x in TheListOfSomeModel)
{
do some work
....
if (SomeCondition)
{
x.ExecuteQuery();
}
}
}
基本上,SomeModel
具有运行存储的一个特性的更新查询的方法将对象转换为数据库中的字段。由于当前编写的代码,如果查询需要运行,整个循环将一直处于暂停状态直到查询完成。如果可以任何用途,TheListOfSomeModel
只有5个元素。
除了使用Parrallel ForEach
,我该如何改变这个以使x.ExecuteQuery()
在单独的线程上运行?
谢谢。
为什么你不想使用Parallel.ForEach? – 2013-02-21 01:05:40
@MikeParkhill:在大多数情况下,SomeCondition将在90%的时间内出现错误。 Parrallel.ForEach增加了一些开销,因为循环只运行5次,我认为它会比传统的foreach慢。如果查询实际运行,我只想让线程发生。 – frenchie 2013-02-21 01:10:18