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
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#
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; } } } }