extending BackgroundWorker ProgressChangedEventArgs

G

Guest

Hi

In my app I'm using a BackgroundWorker component to execute a long-running
task - updating a progress on my form fine. However, I'd like to provide more
information to that form while the process is running i.e. some info text
about the current task being executed.

So, what's the best way to do this? As far as I can see I will have to
inherit from the ProgressChangedEventArgs class and add additional
properties, however my inherited class won't be available to the
BackgroundWorker's ProgressChanged event.

thanks in advance

Richard
 
P

Peter Huang [MSFT]

Hi Richard,

In the ProgressChanged event, we can pass two parameters in the
ProgressChangedEventArgs.
1. ProgressPercentage(int)
2. UserState(object)

So we can pass the additional information in the paramater.
Here is some code snippet for your reference.

private void backgroundWorker1_ProgressChanged(object sender,
ProgressChangedEventArgs e)
{
this.progressBar1.Value = e.ProgressPercentage;
this.label1.Text = e.UserState.ToString();
}

private void backgroundWorker1_DoWork(object sender,
DoWorkEventArgs e)
{
for (int i = 1; i <= 10; i++)
{
Thread.Sleep(1000);
string str = DateTime.Now.ToString() + ": Complete " +
(i*10).ToString() + "%";
BackgroundWorker bw = (BackgroundWorker)sender;
bw.ReportProgress(i * 10, str);
}
}

private void backgroundWorker1_RunWorkerCompleted(object sender,
RunWorkerCompletedEventArgs e)
{
this.label1.Text = DateTime.Now.ToString() + " Completed.";
}

private void button1_Click(object sender, EventArgs e)
{
this.backgroundWorker1.RunWorkerAsync();
}

Best regards,

Peter Huang
Microsoft Online Partner Support

Get Secure! - www.microsoft.com/security
This posting is provided "AS IS" with no warranties, and confers no rights.
 
G

Guest

Peter

Thanks very much for the super-quick response...just what I was looking for.

I think that the documentation for this property could be improved though -
it doesn't really indicate that this is what it can be used for.

thanks

Richard
 
P

Peter Huang [MSFT]

Hi Richard,

Thanks for your feedback!
If you still have any concern, please feel free to post here.

Best regards,

Peter Huang
Microsoft Online Partner Support

Get Secure! - www.microsoft.com/security
This posting is provided "AS IS" with no warranties, and confers no rights.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top