目录

异步加载介绍

声明其他方法时使用方法

async

Task

await

Run

 公司代码:


异步加载介绍


作用:

初始化数据

加载资源

调用接口

例子:    private async void Start()
    {
       await LoadingData(SceneManager.GetActiveScene().name);  // 初始加载第一个页面的数据(即首页)
        //WriteData();
    }

  提示:异步方法必须为可等待(awaitable)的对象,比如后台 I/O,网络请求、文件读写
————————————————

声明其他方法时使用方法

async

告诉编译器“这个方法是异步的”,可以方法内使用 await


Task<bool>

一个“未来会返回 true 或 false 的异步任务”


await

等待异步任务完成,然后拿到结果

  案例: 

    private async Task<bool> zuoshenme( )
    {
        return true;  // 占位返回  异步方法不可空置,必须有返回值
    }

    private async Task<bool> MyMethod()
    {
        // 如果有异步操作就 await
        await zuoshenme();

        // 不想 await 也可以直接返回 true/false
        return true;
    }

💡 小提示:

  • async + return true → 编译器自动包装成 Task<bool>

  • 方法内部可以调用其他异步方法,也可以不 await

Run

单独开辟一条线程

案例

  private Task<bool> wdddw()
    {
        Debug.Log("主线程开始");

        // Task.Run 返回 Task<bool>,直接返回给调用方
        return Task.Run(() =>
        {
            return true;  // Task<bool> 需要返回 bool
        });

        // Debug.Log("主线程继续执行"); // 这里不写,因为 return 已经结束方法
    }

注意

:async 是异步预告,必须要Task<bool>返回值确认返回结果,Task<bool>作为返回功能本身不和async 绑定,只有有Task相关方法就行,run就是其中之一

 公司代码:

读取不同场景的初始数据
    public async Task<bool> LoadingData(string sceneName)
    {
        switch (sceneName)
        {
            case "Login":
                {
                    return true;
                    // 读取登录页面的初始数据
                    //break;
                    
                }
            case "Management":   // 读取管理页面的导航栏数据
                {
                    return await LoadingManagement();
                    //break;
                }
          /*  case "N15AEngine":  // 读取组卷页面的故障点数据
                {
                    return await LoadingN15AEngine();
                    //break;
                }*/
            case "ElectricDriveAssembly": {
                    return await LoadElectricDriveAssembly();
                    //break;
             }
            default:
                {
                    return true;
                }

        }

总结 

  • async + await 是公司代码的常规写法

  • 每个场景的加载方法都是异步 Task<bool>,便于统一 await 调用

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐