Someone was asking how to do multi-threading in the shoutbox and my original example didn't work because of cross-threads. This basically means I couldn't set the value of a control within a thread since it's considered a different process. Well I did manage to get it to work and I figured I'd post the code here. I will also include the source code both both the VB.net and C# versions below.

VB

Code:
Imports System.Threading
Public Class Form1

    Dim Max As Double = 600000
    Dim i As Integer = 0
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ProgressBar1.Maximum = Max
        Dim threadFill As Thread = New Thread(AddressOf Thread_FillProgressbar)
        threadFill.Start()
    End Sub


    Private Sub Thread_FillProgressbar()

        For i = 0 To Max
            AccessControl()
        Next
    End Sub

    Private Sub AccessControl()
        If Me.InvokeRequired Then
            Me.Invoke(New MethodInvoker(AddressOf AccessControl))
        Else


            ProgressBar1.Value = i
            ShowInTaskbar = True
        End If
    End Sub
End Class
C#

Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace CSharp_multithreading
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        int Max = 60000;
        int i = 0;
        private void Form1_Load(object sender, EventArgs e)
        {
            progressBar1.Maximum = Max;
            Thread threadFill = new Thread(Thread_FillProgressBar);
            threadFill.Start();
        }

        private void Thread_FillProgressBar()
        {
            for (i = 0; i <= Max; i++)
            {
                accessControl();
            }
        }

        private void accessControl()
        {
            if (InvokeRequired)
            {

                Invoke(new MethodInvoker(accessControl));

            }
            else
            {
                progressBar1.Value = i;
                ShowInTaskbar = true;

            }



        }
    }
}

VB.NET Source

C# Source