SIGN UP MEMBER LOGIN:    
ARTICLE

Parallel.Invoke in .Net Framework 4

Posted by Suresh Paldia Articles | Multithreading in C# November 15, 2010
In this article let's see about Parallel.Invoke method.
Reader Level:

Namespace: System.Threading.Tasks

Multicore-processors machines are now becoming standard. The key to performance improvements is therefore to run a program on multiple processors in parallel. 

The Task Parallel Library (TPL) is designed to make it much easier for the developer to write code that can automatically use multiple processors. Using the library, you can conveniently express potential parallelism in existing sequential code, where the exposed parallel tasks will be run concurrently on all available processors. Usually this results in significant speedups.

TPL is a major component of the Parallel FX library, the next generation of concurrency support for the Microsoft .NET Framework.

The Parallel Class :  which include
  1. Parallel.For (refer my article : http://www.c-sharpcorner.com/UploadFile/61b832/4178/
  2. Parallel.Foreach (refer my article : http://www.c-sharpcorner.com/UploadFile/61b832/4178/
  3. Parallel.Invoke
Parallel.For() and Parallel.ForEach() are useful if you have collections you need to act on or a known number of times you have to execute the same code, but what about when you have several different things (methods) you need to do? For that, we have Parallel.Invoke().

Parallel.Invoke() simply executes a list of methods passed to it, in parallel:

Example: 

static void Main(string[] args)
{
    //This line will run the methods A,B,C,D and E in parallel
    Parallel.Invoke( ()=>A, ()=>B, ()=>C, ()=>D, ()=>E);
    Console.ReadLine();
}
public static void A()
{
          //DoSomeWork of A
}
public static void B()
{
          //DoSomeWork of B
}
public static void C()
{
          //DoSomeWork of C
}
public static void D() 
{
          //DoSomeWork of D
}
public static void E()
{
          //DoSomeWork of E
}

Methods A(), B(), C(), D() and E() will be assigned to worker threads as they become available and execute in parallel. 

Happy Learning...

Login to add your contents and source code to this article
share this article :
post comment
 
Become a Sponsor
PREMIUM SPONSORS
  • ceTE software specializes in components for dynamic PDF generation and manipulation. The DynamicPDF™ product line allows you to dynamically generate PDF documents, merge PDF documents and new content to existing PDF documents from within your applications. Visit DynamicPDF here
    ceTE software specializes in components for dynamic PDF generation and manipulation. The DynamicPDF™ product line allows you to dynamically generate PDF documents, merge PDF documents and new content to existing PDF documents from within your applications. Visit DynamicPDF here
Nevron Gauge for SharePoint
Become a Sponsor