真理:
- 方法中没有await的异步方法实质上是一个同步的方法
- 异步方法本身不会创建新的线程,但一般实现异步需要有新的线程去做一些事情
- 同一个异步方法中多个await的代码是同步执行的
异步方法实践
本文示例通过Test工程展现,控制台程序同理
初识异步的困惑&解惑
为啥我写的异步没用?还是同步执行的?
[TestClass]
public class AsyncTest
{
[TestMethod]
public void Main()
{
Console.WriteLine("begin:" + Thread.CurrentThread.ManagedThreadId);
DoSomeThingAsync();
Console.WriteLine("Over");
Console.WriteLine("end:" + Thread.CurrentThread.ManagedThreadId);
}
/// <summary>
/// 异步的方法
/// </summary>
/// <returns></returns>
public async Task DoSomeThingAsync()
{
await AsyncMethod1();