/// <summary> /// 更新 /// </summary> public void Update() { // 更新処理 var existsNullRun = false; for (int i = 0; i < m_runList.Count; i++) { var r = m_runList[i]; if (r == null) { existsNullRun = true; continue; } if (r.IsRunning == false) { r.Run(); } r.Update(); if (r.IsDisposed) { m_disposedList.Add(r); } else if (r.IsCompleted) { m_completeList.Add(r); } } if (existsNullRun) { ChipstarLog.Warning("OperationRoutine.Update() exists null-run."); m_runList.RemoveAll(n => n == null); } if (m_completeList.Count > 0) { for (int i = 0; i < m_completeList.Count; i++) { var c = m_completeList[i]; if (c.IsDisposed) { m_disposedList.Add(c); continue; } c.Complete(); } m_completeList.Clear(); } if (m_disposedList.Count > 0) { for (int i = 0; i < m_disposedList.Count; i++) { m_disposedList[i].Dispose(); } m_runList.RemoveAll(r => m_disposedList.Contains(r)); m_disposedList.Clear(); } }