private void button1_Click(object sender, EventArgs e)//两个任务同步开始不影响主ui
{
Task.Run(() =>
{
Thread.Sleep(1000);
MessageBox.Show("素菜做好了");
});
Task.Run(() =>
{
Thread.Sleep(2000);
MessageBox.Show("荤菜做好了");
});
}
private async void button2_Click(object sender, EventArgs e)//等待任务完成
{
await Task.Run(() =>
{
Thread.Sleep(1000);
MessageBox.Show("素菜做好了");
Thread.Sleep(2000);
MessageBox.Show("荤菜做好了");
});
MessageBox.Show("吃饭");
}
private void button3_Click(object sender, EventArgs e)//等待多个任务完成
{
List<Task> ts = new List<Task>();
ts.Add(Task.Run(() =>
{
Thread.Sleep(1000);
}));
ts.Add(Task.Run(() =>
{
Thread.Sleep(1500);
}));
Task.WhenAll(ts).ContinueWith(t =>
{
MessageBox.Show("吃饭");
});
}
09-14
6486
01-21
6592
12-06
1745
05-24