Name
Concurrent Programming in .Net 4.0

Code
3505

Duration
8 Hours

Description
Until recently, multithreaded applications didn't necessary run in parallel. The .NET 4.0 framework enables developers to parallelize their code in an easy and consistent way. This course overviews the .NET 4.0 framework's broad support for multi-threaded and parallel programming. In addition, this course introduces Visual Studio 2010 new debugging features that assist with the development of parallel and threaded applications.

Population
C# Developers.

Objectives
Be capable of exploiting .NET 4.0 support for multithreaded and parallel programming.

Prerequisites
Practical experience in C# programming.

Topics
Introduction to Threads
Simple Threads
The ThreadStart Delegate
The Join Method
The IsAlive Property
The Thread.Sleep Method
The Thread.Name Property
The Thread.CurrentThread Property
Passing Data
Anonymous Method
Data Sharing
Threads Pooling
Foreground & Background Threads
Threads Priority
Asynchronous Delegates
Overview
The BeginInvoke Method
The EndInvoke Method
The IAsyncResult Interface
The Callback Delegate
Synchronization
Blocked Thread
The ThreadState Property
The lock Construct
Improverished Concurrency
Dead Lock
Lock Race
Mutex
Semaphore
Threads Safety
Static Members
Atomic Statements
The Interlocked Class
The volatile Modifier
Read and Write Locks
Timers
Overview
Multithreaded Timers
Single Threaded Timers
Graphics User Interface Timers
Threads Signaling
Overview
The EventWaitHandle Class
The ManualResetEvent Class
The AutoResetEvent Class
Two Way Signaling
The Wait and Pulse Methods
The Barrier Class
The CountDownEvent Class
Background Threads
The BackgroundWorker Class
Thread Progress
Thread Cancellation
Thread Completed
Local Storage
Overview
The LocalDataStoreSlot Class
Local Storage Usability
Ending Thread Life
The Abort Method
The Interrupt Method
Termination Pattern
Parallelism
Parallelism and Threads
Parallelism Benefits
Parallel Libraries
Amdahl\' Law
Parallel Loops
The Parallel.For Loop
The Parallel.ForEach LOOP
Performance
The Parallel.Invoke Method
Tasks
Overview
Tasks Scheduler
Creating Tasks
The Wait and WaitAll Methods
The WaitAny Method
The Task.IsCompleted Property
The ContinueWith Method
The Result Property
Asynchronous Methods
Introduction
Synchronous & Asynchronous
Multiple Threads Problem
The Synchronous Method Pattern
Optimizing Threads Resources
The Web Request Case Study
Declaring Asynchronous Method
Comparing with Asynchronous Delegates
Threads Debugging
Parallel Debugging
Parallel Task Window
Parallel Stack Window