Have you ever been frustrated when an application you were using temporarily froze while it was performing some task? Maybe it froze while you were searching its data or perhaps performing a long calculation. There are many factors that could cause an application to become unresponsive, but it is usually the result of doing something intensive on the same thread that is responsible for updating the user interface (UI). That means that when this long-running code is executing, the UI is unable to update, causing a perceived application freeze.
Clearly, this isn’t something we want in our applications. Fortunately, there are ...