In my WPF, .Net 4.5 application I have some long running tasks that occur after user interactions.

If for example a user clicks a button, whats the best way to run the button action on a separate thread so that the user can keep interacting with the application while the processing is being done?