Unity简单的主线程调度器

    private static readonly Queue<Action> actionQueue = new Queue<Action>();
    private static readonly object queueLock = new object();
	private void Update()
    {
    
    
        lock (queueLock)
        {
    
    
            while (actionQueue.Count > 0)
            {
    
    
                Action action = actionQueue.Dequeue();
                action?.Invoke();
            }
        }
    }
    public void Enqueue(Action action)
    {
    
    
        lock (queueLock)
        {
    
    
            actionQueue.Enqueue(action);
        }
    }

使用:

        Enqueue(() =>
        {
    
    
            //需要执行的代码
        });

猜你喜欢

转载自blog.csdn.net/u010197227/article/details/134686301