This example demonstrates how to execute some methods in the background and some other methods in the UI thread using just custom attributes.
DoStuff method has the
[Background] aspect and therefore will be executed in the thread pool. This method invokes the
which update the UI and therefore must be executed on the UI thread. Without PostSharp, the background method should call
Dispatcher.BeginInvoke(). With PostSharp,
methods requiring to be dispatched onto the UI thread must be annotated with the [Dispatched] custom attribute.
[Dispatched], you can write multi-threaded code without cluttering it with calls to the
ThreadPool or the
Dispatcher. Your code remains clean.