Task::Run Method (Action^)

.NET Framework (current version)

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Queues the specified work to run on the thread pool and returns a Task object that represents that work.

Namespace:   System.Threading.Tasks
Assembly:  mscorlib (in mscorlib.dll)

static Task^ Run(
	Action^ action


Type: System::Action^

The work to execute asynchronously

Return Value

Type: System.Threading.Tasks::Task^

A task that represents the work queued to execute in the ThreadPool.

Exception Condition

The action parameter was null.

The Run method allows you to create and execute a task in a single method call and is a simpler alternative to the StartNew method. It creates a task with the following default values:

For information on handling exceptions thrown by task operations, see Exception Handling (Task Parallel Library).

The following example defines a ShowThreadInfo method that displays the Thread::ManagedThreadIdof the current thread. It is called directly from the application thread, and is called from the Action delegate passed to the Run(Action^) method.

No code example is currently available or this language may not be supported.

The following example is similar to the previous one, except that it uses a lambda expression to define the code that the task is to execute.

No code example is currently available or this language may not be supported.

The examples show that the asynchronous task executes on a different thread than the main application thread.

The call to the Wait method ensures that the task completes and displays its output before the application ends. Otherwise, it is possible that the Main method will complete before the task finishes.

The following example illustrates the Run(Action^) method. It defines an array of directory names and starts a separate task to retrieve the file names in each directory. All tasks write the file names to a single ConcurrentBag<T> object. The example then calls the WaitAll(array<Task^>^) method to ensure that all tasks have completed, and then displays a count of the total number of file names written to the ConcurrentBag<T> object.

No code example is currently available or this language may not be supported.

Universal Windows Platform
Available since 8
.NET Framework
Available since 4.5
Portable Class Library
Supported in: portable .NET platforms
Windows Phone Silverlight
Available since 8.0
Windows Phone
Available since 8.1
Return to top