2010-12-17 5 views
0

私は次のリスト反復型指定されたリストのセクション

Dim ordersToUpdate as New List(Of OrderUpdate) 

を持っている中で、私は、従来のDBを反復して更新する

For Each order In ordersToUpdate 

    UpdateDB(order) 

Next 

「各について」私はロックオンの問題が生じていますを使用していますDBは "ordersToUpdate"が大きいときに発生します。 Threading.Thread.Sleepを一時停止する代わりに、リストをセクションに分割する適切な方法がありますか?たとえば、一度に100回繰り返します。

+0

レガシーDBとは何ですか?どのようなロック問題がありますか? UpdateDB-Functionを表示する –

答えて

0
Public Function SplitList(Of T)(ByVal list As List(Of T), ByVal size As Integer) As List(Of List(Of T)) 
     Dim result As New List(Of List(Of T)) 
     For i = 0 To CInt(Math.Ceiling(list.Count/size)) - 1 
      result.Add(New List(Of T)(list.GetRange(i * size, Math.Min(size, list.Count - (i * size))))) 
     Next 
     Return result 
    End Function 

Reference

関連する問題