The calling thread cannot access this object because a different thread owns it

This is a common problem with people getting started. Whenever you update your UI elements from a thread other than the main thread, you need to use: this.Dispatcher.Invoke(() => { …// your code here. }); You can also use control.Dispatcher.CheckAccess() to check whether the current thread owns the control. If it does own it, your … Read more