最近、VB.netでマルチスレッドの基本を学びました。大きなリストのレコードを処理し、SQLデータベースに1つずつ挿入していきました。 私はこのようなコードを見てみましょう:マルチスレッド処理の問題
Private Sub btnLoadNow_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoadNow.Click
Dim autoLoad1 As New Thread(AddressOf AutoLoad)
autoLoad1.Start()
Dim autoLoad2 As New Thread(AddressOf AutoLoad)
autoLoad2.Start()
Dim autoLoad3 As New Thread(AddressOf AutoLoad)
autoLoad3.Start()
Dim autoLoad4 As New Thread(AddressOf AutoLoad)
autoLoad4.Start()
Dim autoLoad5 As New Thread(AddressOf AutoLoad)
autoLoad5.Start()
Dim autoLoad6 As New Thread(AddressOf AutoLoad)
autoLoad6.Start()
Dim autoLoad7 As New Thread(AddressOf AutoLoad)
autoLoad7.Start()
Dim autoLoad8 As New Thread(AddressOf AutoLoad)
autoLoad8.Start()
Dim autoLoad9 As New Thread(AddressOf AutoLoad)
autoLoad9.Start()
End Sub
Private Sub AutoLoad()
for each Item as Record In ItemLists
Process Codes
Next
End Sub
Itemlists iがデータベースから取得したグローバルリストで、すべてが私には正常に見えるが、私はこのプログラムを実行すると、私はスレッドがに1つのレコードが9回を挿入していることがわかりましたデータベース(私は合計で9つのスレッドを持っている)、私はおそらく私は具体的に各スレッドにリストの1/9を割り当てる必要があると思う?リストの分割を必要としない別の方法がありますか?そうでない場合は、分割してどのように割り当てますか?いかなる援助も歓迎されるだろう。
私はループコード内にsynclockを持っています。共有変数を使用する例を教えてください。ありがとう。 – miketonny