Call background thread
I think the most Gentleman's approach to call background method is Threadpool.
public void TheGentlemansApproach()
{
// straight onto the threadpool - what could be better?
ThreadPool.QueueUserWorkItem(_ => BackgroundMethod("The Gentleman's Approach"));
}
Modifying WPF controls from the background thread
To be able to change anything from another thread on the WPF window, you can use the Dispatcher.
Define function inside Your CodeBehind or ModeView
private void InvokeOnWindow(Action action)
{
System.Windows.Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, action);
}
using:
InvokeOnWindow(()=>{SomeProperty="Value"});