真理:
- 方法中没有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(<

本文探讨C#异步编程中的Async Await实践,揭示没有await的异步方法实为同步方法,以及异步方法并不创建新线程。通过示例展示异步方法中多个await同步执行的现象,并解释为何异步不等于多线程,强调await的关键作用在于避免阻塞主线程。同时,讨论了异步方法中嵌套异步操作的实际意义。

2545

被折叠的 条评论
为什么被折叠?



