[C#] 纯文本查看 复制代码 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);};
}
} |