# Manage Program Flow
*This portion takes up 25-30% of the exam*
### Implement multithreading and asynchronous processing
Use the Task Parallel library, including theParallel.For method, PLINQ, Tasks;create continuation tasks; spawn threads by using ThreadPool; unblock the UI; use async and await keywords; manage data by using concurrent collections
### Manage multithreading
Synchronize resources; implement locking; cancel a long-running task; implement thread-safe methods to handle race conditions
### Implement program flow
Iterate across collection and array items; program decisions by using switch statements, if/then, and operators; evaluate expressions
### Create and implement events and callbacks
Create event handlers; subscribe to and unsubscribe from events; use built-in delegate types to create events; create delegates; lambda expressions; anonymous methods
### Implement exception handling
Handle exception types, including SQL exceptions, network exceptions, communication exceptions, network timeout exceptions; use catch statements; use base class of an exception; implement try-catchfinally blocks; throw exceptions; rethrow an exception; create custom exceptions; handle inner exceptions; handle aggregate exception
### Preparation resources
* [Asynchronous programming with Async and Await (C# and Visual Basic)](http://msdn.microsoft.com/library/vstudio/hh191443.aspx)
* [Threading (C# and Visual Basic)](http://msdn.microsoft.com/library/ms173178.aspx)
* [Selection statements (C# reference)](http://msdn.microsoft.com/library/vstudio/676s4xab.aspx)
###### tags: `Microsoft` `Certification`