我有一個看起來像這樣的方法執行查詢:多線程:啓動一個線程,而另一個進程不斷去
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