I dont know how to explain it .. so I decided to give image which will clear scenario.
I want to update label in my Usercontrol to get update from other thread which is started from main application. I learn dependency object help this singleton pattern lot but confused how to get it done spent almost one week :(.
Some time STA thread issue comes some time calling from other thread error occur.

Instead of making a static class
TaskProgressto inherit fromDependencyObjectyou should implementINotiifyPropertyChangedin it and raisePropertyChangedevent from the setter of the propertyInstance.This will do the trick because of two reasons…
DependencyObjectis thread agnostic and hence access to it via some other thread will surely result in error.INotifyPropertyChanged.PropertyChangedevent is internally delegated to UI dispatcher by Binding framework of WPF. So a simplemyTaskProgress.Instance = valuewill update the UI automatically no matter which thread it was done from.Note that
INotifyPropertyChangedbeing an interface, it cannot be implemented on static class and cannot have static event or static property. You will hav to have some instance ofTaskProgress(likemyTaskProgressabove) bound to theLabel.Let me know if this helps.