V mé nové aplikaci jsem potřeboval použít stahování v druhém vlákně a vyčkání na jeho dokončení, při řešení problému jsme narazil na Task. Task dokáže už zmíněné obě funkce. Příklad bude na stahování obrázku:
BitmapImage img = await Task.Run(() =>
{
return new BitmapImage(new Uri(“http://www.obrazek.com/img.png”, UriKind.Absolute));
});
Task můžeme používat dvěma způsoby, první je kdy zavoláme nějakou akci na vlákno, a tím se vyvolá na pozadí a dále už nevyčkáváme:
Task.Run(() =>
{
//Naše akce napozadí
});
Druhý způsob jíž zmiňovaný je zvolán vyčkávání na odpověď:
var html = await Task.Run(() =>
{
return client.GetStringAsync(url);
});
Volání tasku se dá využít při stahování dat, načítání a všechny operace které trvají nějakou delší načítací dobu pro uživatele.