c#异步编程async await

可以代替协程了

但是需要.net4 版本

unity2017以上版本可以用了

再也可以不用蛋疼的没有返回值的协程了

    //异步编程,和Task一起用
    async void TestAsync(){
        //等待2秒
        await Task.Delay(2000);
        int a = 0;
        while (a < 20)
        {
            //空等待
            await Task.Yield();//相当于 yield return null
            a++;
            print(a);
        }

        print("haha");
    }

 新例子

    void Start()
    {
        //读取excel
        //GameReadExcel("/Test/Excel/testExcel.xlsx");

        //测试异步编程
        TestAsync();//建立异步任务
        tcs.SetResult(true);//控制任务完成,不然的话await会一直等待,这句就是设置了Task的返回值,设置了就代表任务完成了,也拿到值了
    }

    async void TestAsync()
    {
        await MyTestTask();
        Debug.Log("xxxx");
    }

    private TaskCompletionSource<bool> tcs;
    Task<bool> MyTestTask()
    {
        tcs = new TaskCompletionSource<bool>();
        Debug.Log("测试task方法");
        return tcs.Task;
    }

 更多参考:https://blogs.msdn.microsoft.com/appconsult/2017/08/29/unity-coroutine-tap-zh-cn/

转载于:https://www.cnblogs.com/sanyejun/p/9931555.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值