I have written below two methods
private Task<string> GetStringTask(string url)
{
var client = new WebClient();
var task = client.DownloadDataTaskAsync(new Uri(url));
var task2 = task.ContinueWith<string>(task1 =>
{
var str = Encoding.Default.GetString(task1.Result);
Thread.Sleep(5000);
return str;
});
return task2;
}
private async Task<string> GetStringAsyc(string url)
{
var client = new WebClient();
var htmlByte = await client.DownloadDataTaskAsync(new Uri(url));
var task2 = await Task.Factory.StartNew(() =>
{
var str = Encoding.Default.GetString(htmlByte);
Thread.Sleep(2000);
return str;
});
return task2;
}
I can invoke the both the methods inside the another async method same way like below
var mystring = await GetStringTask("http://www.microsoft.com");
var mystring1 = await GetStringAsync("http://www.microsoft.com");
Both method return the same result. Can anyone explain me the difference between these two methods.