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; } }
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; } }