11,578 questions
See this code and it is working fine.
public async Task<int> Getdata(int i)
{
IProgress<string> progress = new Progress<string>(str =>
{
textBox1.Text = str;
});
await Task.Delay(90000);
progress.Report("Task completed "+i.ToString());
return 10;
}
private async void btnTask1_Click(object sender, EventArgs e)
{
List<Task<int>> tasks = new List<Task<int>>();
for (int i = 0; i < 5; i++)
{
tasks.Add(Getdata(i + 1));
}
var result = await Task.WhenAll(tasks);
}
private async void btnTask2_Click(object sender, EventArgs e)
{
var tasks = new List<Task<int>>();
for (int ctr = 1; ctr <= 10; ctr++)
{
int baseValue = ctr;
tasks.Add(Task.Factory.StartNew(b => (int)b * (int)b, baseValue));
}
var results = await Task.WhenAll(tasks);
int sum = 0;
for (int ctr = 0; ctr <= results.Length - 1; ctr++)
{
var result = results[ctr];
textBox1.Text += result.ToString() + ((ctr == results.Length - 1) ? "=" : "+");
sum += result;
}
textBox1.Text += sum.ToString();
}