I have an application that consists of a WPF UI with an "infrastructure" layer below it that has some references to various services with data. I've got a class, Updater, that has a couple properties that represent the data to be consumed by the UI layer. This updater has a Systems.Timer function such that every minute or so, it makes synchronous calls to the service and updates those aforementioned properties with a "refresh" of the data.
I'd like to raise an event from this class that the UI can be notified of the changes when it completes. When i did something akin to this previously, it was throwing exceptions right and left because the thread that fired the event was different (because it came from the timer elapsed event) then the thread the object was created on.
The crappy solution i'm using right now is to have another timer on the UI layer but...yuck.
What's the best way to notify the UI that the Updater class is all done with it's work?