在Csharp中存在Async关键字可以用来修饰 函数或者委托事件 ,需注意该函数返回值只能是void或者task<>/task

当一个函数/委托/事件被该关键字修饰时如果发现在函数内部有await关键字时会去执行await关键字后的task线程函数如下

public async void TestAsync()
    {
        //1
        print("1");
        //2
        await Task.Run(() =>
        {
            Thread.Sleep(5000);
        });
        //3
        print("2");
    }

当该函数被调用时的执行顺序是:

1.在await之前的逻辑 此时是同步执行的

2.遇到await后将新开一个线程去执行由task类封装的线程对象方法,此时该函数就像Unity中的协程函数遇到yield return一样会被直接挂起,去执行调用该方法位置时的逻辑

3.当task线程中的方法被执行完毕时,会再次的回到TestAsync()方法中去执行剩下的逻辑

一些特殊语法

一下内容代表Task开一个线程去执行休眠1秒的逻辑

await Task.Delay(1000);

不会做游戏!