text 使用C#等待async而不是Unity coroutine

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了text 使用C#等待async而不是Unity coroutine相关的知识,希望对你有一定的参考价值。

    async Task GetName()
    {
        // Delay 方法来自于.net 4.5
        await Task.Delay(1000);  // 返回值前面加 async 之后,方法里面就可以用await了
        Debug.Log("Current Thread Id :"+ Thread.CurrentThread.ManagedThreadId);
        Debug.Log("In antoher thread.....");
    }
    
    private async void Update()
    {
        if(Input.GetKeyUp(KeyCode.A))
        {
            Debug.Log($"main thread id:{Thread.CurrentThread.ManagedThreadId}");
            await GetName();
//             new Thread(Go).Start();  // .NET 1.0开始就有的
//             Task.Factory.StartNew(Go); // .NET 4.0 引入了 TPL
             await Task.Run(Go);
                                       //             Debug.Log("111 balabala. My Thread ID is :" + Thread.CurrentThread.ManagedThreadId);
                                       //             AsyncMethod();
                                       //             
                                       //             Debug.Log("222 balabala. My Thread ID is :" + Thread.CurrentThread.ManagedThreadId);
        }
        //Debug.Log(Time.realtimeSinceStartup);
    }

以上是关于text 使用C#等待async而不是Unity coroutine的主要内容,如果未能解决你的问题,请参考以下文章

在C#中使用async而不等待?

C# 中的 C++ std::async 与异步/等待

跳过 SemaphoreSlim 而不是等待

彻底搞明白Unity-async-task特性

Unity3D-UGUI应用篇使用Text实现进度等待动画

如何在 Unity/C# WebGL 平台中调用 async/await JavaScript 函数?