c# unity 异步任务队列

异步任务队列,十分好用

复制代码
using System.Collections;
using System.Collections.Generic;
using System.Threading.Tasks;
using UnityEngine;

/// <summary>
/// 异步任务队列
/// </summary>
public class AsyncQueueTask
{
    public delegate Task<bool> TaskDel(object data);
    private bool isWait;
    
    //方法队列
    Queue<TaskDel> taskQueue = new Queue<TaskDel>();
    //参数队列
    Queue<object> paraQueue = new Queue<object>();
    
    
    
    /// <summary>
    /// 调用这个即可
    /// </summary>
    /// <param name="ac">方法</param>
    /// <param name="data">参数</param>
    public void AddQueueTask(TaskDel ac, object data)
    {
        Debug.Log("入队");
        taskQueue.Enqueue(ac);
        paraQueue.Enqueue(data);
        StartTask();
    }
    
    async void StartTask()
    {
        if (!isWait && taskQueue.Count != 0)
        {
            isWait = true;
            await taskQueue.Peek()(paraQueue.Peek());
            Debug.Log("出队");
            taskQueue.Dequeue();
            paraQueue.Dequeue();
            isWait = false;
            StartTask();
        }
    }
}
复制代码

 

posted @   三页菌  阅读(938)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
历史上的今天:
2019-01-05 xcode发布ipa
点击右上角即可分享
微信分享提示