• 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();
            }
        }
    }
  • 相关阅读:
    Andoird注册功能
    android注册功能
    寒假周总结六
    android登录功能
    Android登录功能
    android登录功能
    每日日报2021.1.24
    每日博客2021.1.23
    每日日报2021.1.22
    每日日报2021.1.21
  • 原文地址:https://www.cnblogs.com/sanyejun/p/14235883.html
Copyright © 2020-2023  润新知