C#深度总结-Async Await
Async和Await并用可以控制代码的执行顺序。
Await只能用于Async修饰的方法,但不一定必须用。比如
using System;
using System.Collections.Generic;
using System.IO;
using System.Runtime.CompilerServices;
using System.Threading;
using System.Threading.Tasks;
namespace Lock
{
class Program
{
static void Main()
{
Console.WriteLine(\"主程序\");
// 不等 Asyn()完成,直接执行下面的代码
Asyn();
Console.WriteLine(\"主程序\");
Console.ReadKey();
}
/// <summary>
/// Asyn()不是被主线程执行的
/// </summary>
static async void Asyn()
{
// 执行到这里将要等待,等到 CreateFile(...)完成才能执行下面的代码 - 代码 A
await CreateFile(@\"C:\\Users\\Administrator\\Desktop\\\");
//// 执行到这里不等待 CreateFile(...)完成,直接执行后面的代码 - 代码 B
//CreateFile(@\"C:\\Users\\Administrator\\Desktop\\\");
for (int i = 0; i < 3; i++)
{
Console.WriteLine(\"hello world\");
Task.Delay(1000);
}
}
static async Task CreateFile(string filePath)
{
//await Task.Run(delegate { File.Create(filePath + \"a.txt\"); });
//await Task.Delay(5000);
Task.Delay(5000);
Task.Run(delegate { File.Create(filePath + \"a.txt\"); });
}
}
所以,如果希望异步(Async修饰)的方法执行完某个操作之后再执行后面的操作,那就加上Await;否则就不加。
继续阅读与本文标签相同的文章
上一篇 :
那些实用的Nginx规则
下一篇 :
9种高性能可用高并发的技术架构
-
汇编(四)字的存储、DS和[address]、字的传送、mov、add、sub指令、数据段
2026-05-19栏目: 教程
-
elasticsearch之索引管理API(Index management)
2026-05-19栏目: 教程
-
简单介绍几种Java后台开发常用框架组合
2026-05-19栏目: 教程
-
<丰田发布了LQ EV概念车>。丰田全新的概念车配备了AI代理和自动驾驶功能,这是丰田美国公司研究员开发的,首次的公开亮相将在本月23日。在2017年CES消费车展上丰田曾展示了 Concept-Ai i概念车
2026-05-19栏目: 教程
-
Sysweld笔记:利用稳态算法加速算法模拟焊接过程的残余应力
2026-05-19栏目: 教程
