I have a problem in the example provided in walkthrough. Nowhere in the example have used Invoke or BackgroundWorker for updating UI in async methods. Is that mistake or we can finally say that "the runtime will deal with it automagically, so it doesn't matter now."?

EDIT: So these methods are really not needed at all.

Async methods do not require multithreading because an async method does not run on its own thread. It works on the current thread, using time on the thread only when it is active.