public delegate void UpdateProgressBarDelegate(ImGearRecProgressEventArgs e);
UpdateProgressBarDelegate progressDelegate = null;
void UpdateProgressBar(ImGearRecProgressEventArgs e)
{
    if (e.Percent < 100)
        toolStripStatusProgress.Text = e.Process + " - " + e.Percent + "%";
    else
        toolStripStatusProgress.Text = "Ready";
    this.Update();
}
private void recProgress(object sender, ImGearRecProgressEventArgs e)
{
    if(this.InvokeRequired)
    {
        object[] arg = new object[1];
        arg[0] = e;
        this.Invoke(progressDelegate, arg);
    }
    else
    {
        UpdateProgressBar(e);
    }
}
	 
	
		Public Delegate Sub UpdateProgressBarDelegate(ByVal e As ImGearRecProgressEventArgs)
Public progressDelegate As UpdateProgressBarDelegate
Sub UpdateProgressBar(ByVal e As ImGearRecProgressEventArgs)
    If e.Percent < 100 Then
        toolStripStatusProgress.Text = e.Process.ToString() + " - " + e.Percent.ToString() + "%"
    Else
        toolStripStatusProgress.Text = "Ready"
    End If
    Me.Update()
End Sub
Private Sub recProgress(ByVal sender As Object, ByVal e As ImGearRecProgressEventArgs)
    If Me.InvokeRequired Then
        Dim arg As Object() = New Object(0) {}
        arg(0) = e
        Me.Invoke(progressDelegate, arg)
    Else
        UpdateProgressBar(e)
    End If
End Sub