IEnumerator OnOpenSheets(CancellableSignal signal) { var subTaskHandle = new SubTaskHandle(signal); var enumerator = ServiceModelManager.OpenSheetTask(subTaskHandle); while (enumerator.MoveNext()) { this.SetSubProgress(subTaskHandle.Progress); yield return(enumerator.Current); if (CancellableSignal.IsCancelled(signal)) { yield break; } } if (subTaskHandle.IsError) { #if LOG_DEBUG Debug.LogWarning(string.Format("ASSET:EXCEPT:SHEETS:EXCEPT:{0}", subTaskHandle.Except)); #endif// LOG_DEBUG var e = subTaskHandle.Except; this.SetFailed(signal, 'S', e.GetType().Name, e.Message); yield break; } this.SetSubProgress(1); yield return(null); if (CancellableSignal.IsCancelled(signal)) { yield break; } }
public void CloseSingleton() { this.Stop(); MVC.ModelDisposer.CloseAll(); Resources.UnloadUnusedAssets(); this.progress = 0; this.progressBegin = 0; this.progressEnd = 0; this.state = State.None; this.stateErrLog = ""; ServiceModelManager.Close(); }
public void OpenSingleton() { ServiceModelManager.Open(); this.stateMgrs = new StateManager[] { null,// None, new StateManager { func = this.OnOpenSheets, progress = 0.1f, }, // OpenSheets, new StateManager { func = this.OnOpenServiceModels, progress = 0.2f, }, // OpenServiceModels, null, // Done, null, // Except, }; }
IEnumerator OnOpenServiceModels(CancellableSignal signal) { var subTaskHandle = new SubTaskHandle(signal); var tasks = ServiceModelManager.OpenServiceTask(subTaskHandle); int count = tasks.Length; float progress = 0f; float progressDelta = 1 / (float)count; foreach (var task in tasks) { subTaskHandle.Clear(); while (task.MoveNext()) { this.SetSubProgress(progress + (progressDelta * subTaskHandle.Progress)); yield return(task.Current); if (CancellableSignal.IsCancelled(signal)) { yield break; } } progress += progressDelta; this.SetSubProgress(progress); if (subTaskHandle.IsError) { #if LOG_DEBUG Debug.LogWarning("ASSET:EXCEPT:SERVICE_MODELS"); #endif// LOG_DEBUG var e = subTaskHandle.Except; this.SetFailed(signal, 'C', e.GetType().Name, e.Message); yield break; } } this.SetSubProgress(1); yield return(null); if (CancellableSignal.IsCancelled(signal)) { yield break; } }