An article I wrote (seemingly ages ago) just appeared in the September issue of Dr. Dobb’s journal:
Application Responsiveness: Using concurrency to enhance user experiences Thanks to recent innovation in both hardware graphics processors and client-side development frameworks, GUIs for Windows applications have become more and more visually stunning over time. But throughout the evolution of such frameworks, one problem hasn’t gone away: poor responsiveness. Studies show that positive user experiences are linked to application responsiveness and, conversely, that frustrating experiences are often caused by poor responsiveness. More often than not, this lack of responsiveness is due to a series of subtle (and sometimes accidental) design choices made during development. In this article, I examine the root of the responsiveness problem, and then suggest some best practices for eliminating it.
My article only touches on some important issues that are described in detail elsewhere. Here are some good follow-up references:
D. Duis, J. Johnson. Improving User Interface Responsiveness Despite Performance Limitations. _Proc. IEEE Computer Society Intl. Conference. _February 1990.
J. Duffy. No More Hangs: Techniques for Avoiding and Detecting Deadlocks. MSDN Magazine. April 2006.
G. H. Forman. Obtaining Responsiveness in Resource-Variable Environments. PhD Dissertation, University of Washington. 1998.
I. Griffiths. Windows Forms: Give Your .NET-based Applications a Fast and Responsive UI with Multiple Threads. MSDN Magazine. February 2003.
N. Kramer. Threading Models (Windows Presentation Foundation). _Weblog essary. _June 2005.
G. Maffeo, P. Silwowicz. Win32 I/O Cancellation in Windows Vista. MSDN. September 2005.
V. Morrison. Concurrency: What Every Dev Must Know About Multithreaded Apps. _MSDN Magazine. _August 2005.
M. E. Russinovich, D. A. Solomon. Microsoft Windows Internals. _ISBN 0-735-61917-4, MS Press. _December 2004.
C. Sells. Safe, Simple Multithreading in Windows Forms, Part 1. MSDN. June 2002.
C. Sells, I. Griffiths. Programming Windows Presentation Foundation. ISBN 0-596-10113-9, O’Reilly. September 2005.