O'Reilly logo

C# 5.0 Programmer's Reference by Rod Stephens

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Appendix U Parallel Programming

This appendix summarizes C# parallel programming techniques.

Interacting with the User Interface

Code can directly interact with user interface elements if the code is running inside the thread that created those elements. For example, code executing in a separate thread cannot safely change the text displayed in a TextBox or Label.

To interact with the UI controls, a thread should follow these steps.

  1. Check the InvokeRequired property for a control that was created in the UI thread.
  2. If InvokeRequired is true, the thread should call the control’s Invoke method, passing it a delegate.
  3. The delegate executes on the control’s thread. Because it is running in the control’s thread, the delegate can safely interact with the control.

PLINQ

Parallel LINQ (PLINQ pronounced “plink”) allows a program to execute LINQ queries across multiple processors or cores in a multi-core system. Simply add a call to the AsParallel extension method to the enumerable object from which the query selects data.

The following code uses a PLINQ query to select the even numbers in the array numbers. The call to AsParallel is highlighted in bold.

var evens =
    from int number in numbers.AsParallel()
    where number % 2 == 0
    select number;

foreach (int number in evens) Console.WriteLine(number);

This code composes the query and includes the call to AsParallel. It then loops through the query’s results and displays them.

BackgroundWorker

The BackgroundWorker component provides a relatively ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required