/// <summary>
 /// Allows the value of a dependency property to be set across threads
 /// </summary>
 /// <param name="owner">Dependency object that owns the property that is having it's value changed</param>
 /// <param name="dp">Dependency property having it's value set</param>
 /// <param name="value">New value of the dependency property</param>
 public static void SetDependencyPropertyValue(DependencyObject owner, DependencyProperty dp, object value)
 {
     GeneralMethods.ExecuteDelegateOnGuiThread(owner.Dispatcher, () => owner.SetValue(dp, value));
 }