Thread-based parallelism in C#

CsharpProgrammingServer Side Programming

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(); });

Use Task Factory to start a task −

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

You can also use Lambda −

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

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


 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);


1001 loop iterations ends
Published on 21-Aug-2018 12:48:31