public static void Log(TaskManager.TaskLog m) { if (!TaskManager.IsMainThread) { object obj = TaskManager.syncRoot; lock (obj) { TaskManager.PendingLogs.Add(m); } } else { TaskManager.Write(m); } }
protected void Update() { if (TaskManager.PendingAdd.get_Count() == 0 && TaskManager.PendingRemove.get_Count() == 0 && TaskManager.PendingActions.get_Count() == 0 && TaskManager.PendingLogs.get_Count() == 0 && TaskManager.PendingCoroutineInfo.get_Count() == 0) { return; } object obj = TaskManager.syncRoot; lock (obj) { for (int i = 0; i < TaskManager.PendingLogs.get_Count(); i++) { TaskManager.Write(TaskManager.PendingLogs.get_Item(i)); } for (int j = 0; j < TaskManager.PendingAdd.get_Count(); j++) { base.StartCoroutine(TaskManager.PendingAdd.get_Item(j)); } for (int k = 0; k < TaskManager.PendingRemove.get_Count(); k++) { base.StopCoroutine(TaskManager.PendingRemove.get_Item(k)); } for (int l = 0; l < TaskManager.PendingCoroutineInfo.get_Count(); l++) { base.StartCoroutine(this.RunCoroutineInfo(TaskManager.PendingCoroutineInfo.get_Item(l))); } for (int m = 0; m < TaskManager.PendingActions.get_Count(); m++) { TaskManager.PendingActions.get_Item(m).Invoke(); } TaskManager.PendingAdd.Clear(); TaskManager.PendingRemove.Clear(); TaskManager.PendingActions.Clear(); TaskManager.PendingLogs.Clear(); TaskManager.PendingCoroutineInfo.Clear(); } }