How to access windows UI form control single instance from multiple threads safely?
===

I am using multithreading in Windows Forms. I am calling a method in UI form from multiple threads. But "Invoke or BeginInvoke cannot be called on a control until the window handle has been created" error throws sometimes even though Me.InvokeReqired call returns True.The code of Windows from method that called from multiple threads as follows:

Private Delegate Sub ShowReminder(ByVal reminder As Web.Reminder, ByVal modelTask As clsModel)
        Public Sub DisplayReminder(ByVal reminder As Web.Reminder, ByVal modelTask As clsModel)
            If Me.InvokeRequired Then
                Dim reminderDelegate As New ShowReminder(AddressOf ShowReminderForm)
                Me.BeginInvoke(reminderDelegate, reminder, modelTask)
            Else
                ShowReminderForm(reminder, modelTask)
            End If
        End Sub

This Windows Form method is called from another singleton class by multiple threads as follows:

Private Sub ShowReminder(ByVal reminder As Reminder)
            If frmReminder Is Nothing OrElse frmReminder.IsDisposed Then
                frmReminder = New frmReminderPopup
            Else
                If frmReminder.IsHandleCreated = False Then
                    Threading.Thread.Sleep(100)
                    ShowReminder(reminder)
                End If
            End If
            frmReminder.DisplayReminder(reminder, _taskModel)
        End Sub

Any help will be appreciable