在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);