Cool_Breeze 发表于 2021-4-6 18:42

C# async await 笔记

using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using abc = Iner;

namespace Test
{
    class Program
    {
      static void Main()
      {
            for (int i=0; i<10; i++)
            {
                abc.A.a = i;
                Display(i);
            }
            Console.WriteLine("Main runing");
            Dalay();
            Console.WriteLine("await 不会阻塞调用者!");
            Thread.Sleep(1000);
            Console.WriteLine("Main runing ok!");
            
      }
      
      
      static async void Display(int n)
      {
            List<string> col = new List<string>();
            abc.A.b((int x, List<string> y) => {Console.WriteLine("Iner Action {0}", x); y.Add(n.ToString());});
            await Add(n.ToString(), col);
      }
      
      static async Task Add(string name, List<string> Col)
      {
         await Task.Delay(1);
         Col.Add(name);
         Console.WriteLine("**********************");
      }
      
      static async Task GetInerC()
      {
            foreach (string n in abc.A.c)
            {
                Console.WriteLine("Iner A c {0}", n);
                await Task.Delay(80);
            }
      }
      
      static async void Dalay()
      {
            await GetInerC();
      }
    }
}

namespace Iner
{
    public delegate void Ac<t>(t a);
    class A
    {
      public static int a = 11;
      public static List<string> c = new List<string>();
      public static Ac<Action<int, List<string>>> b = (Action<int, List<string>> a)=>{Console.Write("Iner : ") ;a(A.a, A.c);};
    }   
}

Mysql昊 发表于 2021-4-6 19:09

感谢楼主

pilciw 发表于 2021-4-6 19:29


感谢楼主

明月相照 发表于 2021-4-6 20:28

感谢分享,收藏学习下。
页: [1]
查看完整版本: C# async await 笔记