private void DepositWarehouse(CoroutineEnumerator enumerator) { if (!Warehouse.ContainsKey(enumerator.TargetAction)) { Warehouse.Add(enumerator.TargetAction, new List <CoroutineEnumerator>()); } Warehouse[enumerator.TargetAction].Add(enumerator); }
/// <summary> /// 运行协程 /// </summary> /// <typeparam name="T1">协程方法的参数类型</typeparam> /// <typeparam name="T2">协程方法的参数类型</typeparam> /// <param name="action">协程方法</param> /// <param name="arg1">协程方法的参数</param> /// <param name="arg2">协程方法的参数</param> /// <returns>协程迭代器ID</returns> public string Run <T1, T2>(CoroutineAction <T1, T2> action, T1 arg1, T2 arg2) { CoroutineEnumerator coroutineEnumerator = Main.m_ReferencePool.Spawn <CoroutineEnumerator>().Fill(action, new object[] { arg1, arg2 }); coroutineEnumerator.Run(); CoroutineEnumerators.Add(coroutineEnumerator.ID, coroutineEnumerator); DepositWarehouse(coroutineEnumerator); return(coroutineEnumerator.ID); }
/// <summary> /// 运行协程 /// </summary> /// <param name="action">协程方法</param> /// <returns>协程迭代器ID</returns> public string Run(CoroutineAction action) { CoroutineEnumerator coroutineEnumerator = Main.m_ReferencePool.Spawn <CoroutineEnumerator>().Fill(action, null); coroutineEnumerator.Run(); CoroutineEnumerators.Add(coroutineEnumerator.ID, coroutineEnumerator); DepositWarehouse(coroutineEnumerator); return(coroutineEnumerator.ID); }
private void RemoveWarehouse(CoroutineEnumerator enumerator) { if (Warehouse.ContainsKey(enumerator.TargetAction)) { Warehouse[enumerator.TargetAction].Remove(enumerator); if (Warehouse[enumerator.TargetAction].Count <= 0) { Warehouse.Remove(enumerator.TargetAction); } } }
void SelectedIEnumerator(CoroutineEnumerator ie) { mCurEnumerator = ie; traceInfo = ie.id + "\r\n\r\n" + GetTraceInfo(); Repaint(); }