Thread-based parallelism in C#


In C#, Task parallelism divide tasks. The tasks are then allocated to separate threads for processing. In .NET, you have the following mechanisms to run code in parallel: Thread, ThreadPool, and Task. For parallelism, use tasks in C# instead of Threads.

A task will not create its own OS thread, whereas they are executed by a TaskScheduler.

Let us see how to create tasks. Use a delegate to start a task −

Task tsk = new Task(delegate { PrintMessage(); });
tsk.Start();

Use Task Factory to start a task −

Task.Factory.StartNew(() => {Console.WriteLine("Welcome!"); });

You can also use Lambda −

Task tsk = new Task( () => PrintMessage() );
tsk.Start();

The most basic way to start a task is using the run() −

Example

 Live Demo

using System;
using System.Threading.Tasks;

public class Example {
   public static void Main() {
      Task tsk = Task.Run(() => {
         int a = 0;
         for (a = 0; a <= 1000; a++) {}
         Console.WriteLine("{0} loop iterations ends", a);
      });
      tsk.Wait();
   }
}

Output

1001 loop iterations ends

Updated on: 22-Jun-2020

866 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements