Hi, paste this code in Form1

This is the code:
VB Code:
  1. Public Delegate Function MessageBoxShowHandler(ByVal test As String) As DialogResult
  2.     Dim del As New MessageBoxShowHandler(AddressOf MessageBox.Show)
  3.  
  4.     Dim WithEvents clsOuterClass As OuterClass
  5.  
  6.     Public Class OuterClass
  7.         Public OuterOutput0 As Short
  8.         Public Event ThrdCmplt0(ByVal OuterOutput0 As Short)
  9.  
  10.         Dim WithEvents clsInnerClass As InnnerClass
  11.  
  12.         Public Sub OuterProcedure()
  13.             clsInnerClass = New InnnerClass()
  14.             Dim Thread0 As New System.Threading.Thread(AddressOf clsInnerClass.InnerProcedure0)
  15.             clsInnerClass.InnerInput0 = 10000
  16.             Thread0.Start()
  17.         End Sub
  18.  
  19.         Sub InnerProcedure0_EventHandler(ByVal InnerOutput0 As Short) Handles clsInnerClass.ThreadComplete0
  20.             OuterOutput0 = InnerOutput0
  21.             RaiseEvent ThrdCmplt0(OuterOutput0)
  22.         End Sub
  23.     End Class
  24.  
  25.     Public Sub Outer_EventHandler(ByVal OuterOutput0 As Short) Handles clsOuterClass.ThrdCmplt0
  26.         del.BeginInvoke(CStr(OuterOutput0), Nothing, Nothing)
  27.     End Sub
  28.  
  29.     Public Class InnnerClass
  30.         Public InnerInput0 As Short
  31.         Public InnerOutput0 As Short
  32.  
  33.         Public Event ThreadComplete0(ByVal InnerOutput0 As Short)
  34.  
  35.         Public Sub InnerProcedure0()
  36.             Dim iCtr0 As Short
  37.             For iCtr0 = 1 To InnerInput0
  38.                 InnerOutput0 = InnerOutput0 + 1
  39.             Next
  40.             RaiseEvent ThreadComplete0(InnerOutput0)
  41.         End Sub
  42.     End Class
  43.  
  44.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  45.         Dim i As Short
  46.         '
  47.         '-->> Why this code don't displays messagebox 5 times <<--
  48.         For i = 1 To 5
  49.             clsOuterClass = New OuterClass()
  50.             Dim Thrd0 As New System.Threading.Thread(AddressOf clsOuterClass.OuterProcedure)
  51.             Thrd0.Start()
  52.         Next
  53.         '^^^^^^^^^^^^^^^^^^^^^^^
  54.     End Sub


Please help me