I Have solved my problem using this code:
Dim FillI, FillJ As Integer
Private Sub Fill2(Optional ByVal i As Integer = -1, Optional ByVal j As Integer = -1)
If (i = -1) And (j = -1) Then
Fill2(FillI, FillJ)
End If
If (i < 1) Or (j < 1) Or (i > FillM.Width) Or (j > FillM.Height) Then
Exit Sub
End If
If FillM.Pixel(i, j) = 1 Then
FillM.Pixel(i, j) = -1
Fill2(i, j - 1)
Fill2(i, j + 1)
Fill2(i - 1, j - 1)
Fill2(i - 1, j)
Fill2(i - 1, j + 1)
Fill2(i + 1, j)
Fill2(i + 1, j - 1)
Fill2(i + 1, j + 1)
End If
End Sub
Private Sub Fill(ByVal i As Integer, ByVal j As Integer)
FillI = i
FillJ = j
Dim T As New Thread(AddressOf Fill2, 1024 * 1024 * 20)
T.Start()
Do
Application.DoEvents()
Loop Until ThreadState.Running <> T.ThreadState
End Sub
So, is there any idea for Directly pass parameters using
Thread
at
Dim T As New Thread(AddressOf Fill2, 1024 * 1024 * 20)
??