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
karthikeya Boyini
karthikeya Boyini

I love programming (: That's all I know


Advertisements