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(() =>
{
//需要执行的代码
});