Asynchronous UI in WPF and Silverlight (and Windows Forms too)