How to create a thread by using C# to show Progress Bar in Window Application

1. Start Microsoft Visual Studio .NET.
2. Create a new Visual C# Windows Application project named ThreadWinApp.
3. Add a Button control to the form. By default, the button is named Button1.
4. Add a ProgressBar component to the form. By default, the progress bar is named ProgressBar1.
5. Right-click the form, and then click View Code.
6. Add the following statement to the beginning of the file:

using System.Threading;

7. Add the following Click event handler for Button1:

private void button1_Click(object sender, System.EventArgs e)
MessageBox.Show("This is the main thread");

8. Add the following variable to the Form1 class:

private Thread trd;

9. Add the following method to the Form1 class:

private void ThreadTask()
int stp;
int newval;
Random rnd=new Random();
newval = this.progressBar1.Value + stp;
if (newval > this.progressBar1.Maximum)
newval = this.progressBar1.Maximum;
else if (newval < this.progressBar1.Minimum)
newval = this.progressBar1.Minimum;
this.progressBar1.Value = newval;

Note This is the code that underlies the thread. This code is an infinite loop that randomly increments or decrements the value in ProgressBar1, and then waits 100 milliseconds before it continues.
10. Add the following Load event handler for Form1. This code creates a new thread, makes the thread a background thread, and then starts the thread.

private void Form1_Load(object sender, System.EventArgs e)
Thread trd = new Thread(new ThreadStart(this.ThreadTask));
trd.IsBackground = true;
If you enjoyed this post, please consider leaving a comment or subscribing to the RSS feed to have future articles delivered to your feed reader.
This entry was posted in General and tagged , , , . Bookmark the permalink.

One Response to How to create a thread by using C# to show Progress Bar in Window Application

  1. reza says:

    ok but how about work two or more thread on a progressbar to fill it

Leave a Reply

Your email address will not be published. Required fields are marked *