У меня есть ArrayList, который установлен в Friend.Как только я нажимаю кнопку «abc», она добавляется в ArrayList, а затем форма MsgBox выводит счетчик 1 (правильный).
Когда я использую Threadpool для подсчета количества объектов в ArrayList, он всегда возвращает 0.
Пример:
Imports System.Threading
Public Class Form1
Friend Alphabet As New ArrayList
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Alphabet.Add("abc")
MessageBox.Show("Main Sub: " & Alphabet.Count().ToString())
ThreadPool.QueueUserWorkItem(New WaitCallback(AddressOf TestIt))
End Sub
End Class
Module MyModule
Public Sub TestIt()
MessageBox.Show("Threaded Sub: " & Form1.Alphabet.Count().ToString())
End Sub
End Module
Я, очевидно, получаю здесь какую-то проблему с несколькими потоками, но не знаю, как это исправить.Я обычно просто настраиваю отдельные темы, так что я впервые играю с ThreadPool и уже проиграл на шаге 1!