The difference is that in former case you call CallDownloadAsync()
from UI thread (context).
In the latter case, DownloadAsync()
is called from the initiated Task which is generally executed in a different thread created by TPL (Task Parallel Library) out of UI thread or threads created from it.
In WPF, UI components can be accessed only by a dedicated UI thread or (its children) threads created from under it (i.e with the same UI context).