2 out of 3 rated this helpful - Rate this topic

BackgroundWorker.RunWorkerAsync Method (Object)

Starts execution of a background operation.

Namespace:  System.ComponentModel
Assembly:  System (in System.dll)
public void RunWorkerAsync(
	Object argument
)

Parameters

argument
Type: System.Object
A parameter for use by the background operation to be executed in the DoWork event handler.
Exception Condition
InvalidOperationException

IsBusy is true.

The RunWorkerAsync method submits a request to start the operation running asynchronously. When the request is serviced, the DoWork event is raised, which in turn starts execution of your background operation.

If your operation requires a parameter, you can provide it as the argument parameter to RunWorkerAsync.

If the background operation is already running, calling RunWorkerAsync again will raise an InvalidOperationException.

The following code example demonstrates the use of the RunWorkerAsync method to start an asynchronous operation. This code example is part of a larger example provided for the BackgroundWorker class.


// Start the asynchronous operation.
backgroundWorker1.RunWorkerAsync(numberToCompute);


.NET Framework

Supported in: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
More detailed example.

You can enter the objec that you want, when you init the RunWorkerAsync and get it in DoWork events.For Example:

// Param is a class with the necesary information to be used in DoWork Event
var param = new BackupRestoreParameters { FilePath = path, IsCompressed = isCompress };

// Then run the backgroundWorked named bkw.
bkw.RunWorkerAsync(param);

In the DoWork procedure, you can get the param using the Argument property of DoWorkEventArgs:

void BkwDoWork(object sender, DoWorkEventArgs e)
  {
            var par = e.Argument as BackupRestoreParameters;
            if (par != null)
            { ......

That is all.

Useless example
I'd rather not add this kind of example...you know what I mean :)