Hello,

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