/// <summary> /// 执行协成 /// </summary> /// <param name="e"></param> /// <param name="type"></param> public void StartIenumrator(IEnumerator e, IeType type) { IenumratorEntity ie = null; List <IenumratorEntity> listIe = null; if (dicIe.TryGetValue(type, out listIe)) { if (type == IeType.Voice)//没有执行完毕 可随时替换 { ie = listIe[0]; } else { ie = listIe.Find(tp => tp.currentIenumrator == null || tp.isPlayOver);//执行完的 if (ie == null) { ie = new IenumratorEntity(); ie.type = type; listIe.Add(ie); dicIe[type] = listIe; } } } else { listIe = new List <IenumratorEntity>(); ie = new IenumratorEntity(); ie.type = type; listIe.Add(ie); dicIe.Add(type, listIe); } ie.currentIenumrator = e; }
/// <summary> /// 根据类型停止某个协成 /// </summary> /// <param name="ty"></param> public void StopIeByType(IeType ty) { List <IenumratorEntity> listIe = null; if (dicIe.TryGetValue(ty, out listIe)) { listIe.ForEach(m => m.isStartUp = false); dicIe.Remove(ty); } }