Async/Await and Thread-Safe Events

I have an object that does some work and it has an event that informs me of its status and progress.


I used to Async/Await to make sure that the object doesn't lock-up the UI when it's working and I created an event handler for its "StatusChanged" event. In that event I get a string "Status" and an integer "Percentage".


I need to display the "Status" in a Label and the "Percentage" in a ProgressBar but then I run into a cross-thread issue.


What's the best practice here to deal with the cross-thread issue?


I remember a while back when I used to use BackgroundWorked, I used delegates to handle this issue, is that still an acceptable solution or did .NET 4.5 introduce more efficient ones?