I am trying to create a program that executes threads, waits until they are finished and then executes some more code.
When I run it, I recieve a "Object not set to an instance" error on WaitHandle.WaitAll(Tasks). Why does this occur?, WaitHandle.WaitAll is a static method.
Hope someone can help
Code:
Module Module1
Dim Tasks(1) As AutoResetEvent
<MTAThread()> Sub Main()
Tasks(0) = New AutoResetEvent(False)
Tasks(1) = New AutoResetEvent(False)
Tasks(2) = New AutoResetEvent(False)
ThreadPool.QueueUserWorkItem(New WaitCallback(AddressOf T1), Tasks(0))
ThreadPool.QueueUserWorkItem(New WaitCallback(AddressOf T2), Tasks(1))
WaitHandle.WaitAll(Tasks)
' Do some Tasks
End Sub
Sub T1(ByVal state As Object)
System.Console.Write("In T1")
Thread.Sleep(3000)
Tasks(0).Set()
End Sub
Sub T2(ByVal state As Object)
System.Console.Write("In T2")
Thread.Sleep(3000)
Tasks(1).Set()
End Sub
End Module
