You may have run into some applications that occasionally don't respond to anything you do. In fact, if you even cover the application's window with another application and then uncover it, you might be left with a white window. After a few seconds have elapsed, the application magically springs back to life. So, what happened? An application that exhibits this kind of behavior could benefit from using the technologies explained this hour: threading and synchronization.
Threading means that while your main code is executing, another portion of your program is also running at the same time. In other words, once a thread is created, two places within your program are running in parallel. This could be done using multiple threads, in which case the application developer would create a thread for the user interface so that it remains responsive to the user while creating a background thread, also known as a worker thread, to perform the background tasks.
In this hour you will learn:
How to create and control threads using the .NET Framework
How to synchronize multiple threads using a monitor
About communication between threads using events