title: VB.NET Invoke cannot be called on a control until the window handle has been created, BUT the handle is created
body: <p>This is my situation, there are 2 Classes and my main form Form1:</p>
  
  <p>Class1: has a method doSomethingAndCall(callback) which creates a new thread
  Class2: has dynamic created controls with a button that fires Class1.doSomethingAndCall(newCallback)</p>
  
  <p>in code it looks like this (it starts at Class2.Button_Click):</p>
  
  <pre><code>Class Class1
    public shared sub doSomethingAndCallAsync(state as object)
      Console.WriteLine(Form1.InvokeRequired) 'output: false
      Console.WriteLine(Form1.IsHandleCreated) 'output: false
      Form1.Invoke(state.callback) 'throws System.InvalidOperationException
    end sub
  
    public shared sub doSomethingAndCall(callback as object)
      System.Threading.ThreadPool.QueueUserWorkItem(AddressOf doSomethingAndCallAsync, New With {.callback = callback})
    end sub
  End Class
  
  Class Class2
    Public Delegate Sub doSomethingDelegate()
  
    Public Sub doSomething()
      Console.WriteLine("success!")
    End Sub
  
    Public Sub Button_Click(ByVal sender As Object, ByVal e As System.EventArgs)
      Class1.doSomethingAndCall(New doSomethingDelegate(AddressOf doSomething))
    End Sub
  End Class
  </code></pre>
  
  <p>The exact exception I get is:</p>
  
  <blockquote>
    <p>Invoke or BeginInvoke cannot be called on a control until the window handle has been created</p>
  </blockquote>
  
  <p>and as I can see the console.WriteLine in line 4 shows me that the form is realy not created. So I added this handlers, and now it get's really confusing:</p>
  
  <pre><code> Private Sub Form1_HandleCreated(sender As Object, e As System.EventArgs) Handles Me.HandleCreated
          Console.WriteLine("Handle created") 'Output: Handle created, when running program
    End Sub
  
    Private Sub Form1_HandleDestroyed(sender As Object, e As System.EventArgs) Handles Me.HandleDestroyed
          Console.WriteLine("Handle destroyed") 'Will never Output!
    End Sub
  </code></pre>
  
  <p>So it's created and never destroyed but if i click the button it's nevertheless not avaible? -Can anyone explain me what is going on and how to call a callback correct, thanks!</p>