单个任务并行
var task1 = Task.Run(() =>
{
Thread.Sleep(500);
Console.WriteLine("小耗子");
});
var task2 = Task.Run(() =>
{
Thread.Sleep(100);
Console.WriteLine("大耗子");
});
task1.Wait();
task2.Wait();
static void Main(string[] args)
{
//Task 并行
Console.WriteLine(DateTime.Now);
var task = Task.WhenAll(
Task.Run(() => { Sleep(2000); }),
Task.Run(() => { Sleep(1000); }),
Task.Run(() => { Thread.Sleep(3000); Console.WriteLine($"等待{3000}秒"); Console.WriteLine(""); })
);//多个task并行执行,不阻塞
task.ContinueWith((go) =>//Task完成后,执行这个回调
{
Console.WriteLine("并行完成" + DateTime.Now);
});
Console.WriteLine(DateTime.Now);
Console.ReadKey();
}
static void Sleep(int number)
{
Thread.Sleep(number);
Console.WriteLine($"等待{number}秒");
Console.WriteLine("");
}
结果:多个任务并行