In my experience with Silverlight, trying to do this will throw an exception.
Basically, you need to update the related properties from the dispatcher thread, just as if you were directly modifying the interface.
To let the ViewModel do this without knowing the real Dispatcher , I found it useful to create an IDispatcher interface, then use the SameThreadDispatcher tags for tests and SystemDispatcher (which are the delegates to the real thing) for production. Then you pass the ViewModel IDispatcher as a dependency.
Jon skeet
source share