如下代码。只需要异步的处理一个数据,不需要等处理完成后,进行后继的操作。可以不用Async来修饰方法
static void Main(string[] args)
{
Test();
Console.WriteLine("Main End");
Console.Read();
} static void Test()
{
var task1 = Task.Run(() =>
{
Task.Delay();
Console.WriteLine("task1");
});
var task2 = Task.Run(() =>
{
Task.Delay();
Console.WriteLine("task2");
});
}
但是如果期望在方法完成后,要执行一些操作,可以用await关键词,如果要用await关键词,就必须使用async来修饰方法。
static void Main(string[] args)
{
Test();
Console.WriteLine("Main End");
Console.Read();
} static async void Test()
{
var task1 = Task.Run(() =>
{
Thread.Sleep();
Console.WriteLine("task1");
});
var task2 = Task.Run(() =>
{
Thread.Sleep();
Console.WriteLine("task2");
}); await Task.WhenAny(new Task[] { task1, task2 });
Console.WriteLine("有一个任务完成");
await Task.WhenAll(new Task[] { task1, task2 });
Console.WriteLine("全部完成!");
}
异步相关内容:
- 异常处理
- 在调用方法中同步等待任务
- 在异步方法中异步等待任务
- Task.Delay()暂停执行