/// <summary> /// /// </summary> /// <param name="strScriptName"></param> /// <returns></returns> public static ScriptAssemblyInfo[] GetScriptAssemblyInfo(string strScriptName) { ScriptAssemblyInfo[] returnArray = s_NullArray; do { s_LockScriptAssemblyInfos.Enter(); { IEnumerable <ScriptAssemblyInfo> valueEnumerable = null; s_ScriptAssemblyInfos.TryEnumerateValuesForKey(strScriptName, out valueEnumerable); if (valueEnumerable == null) { break; } List <ScriptAssemblyInfo> listValue = new List <ScriptAssemblyInfo>(); foreach (ScriptAssemblyInfo scriptAssemblyInfo in valueEnumerable) { listValue.Add(scriptAssemblyInfo); } returnArray = listValue.ToArray(); } s_LockScriptAssemblyInfos.Exit(); } while (false); return(returnArray); }
/// <summary> ///TryEnumerateValuesForKey 的测试 ///</summary> public void TryEnumerateValuesForKeyTestHelper <KeyT, ValueT>() { bool allowDuplicateValues = false; // TODO: 初始化为适当的值 MultiDictionary <KeyT, ValueT> target = new MultiDictionary <KeyT, ValueT>(allowDuplicateValues); // TODO: 初始化为适当的值 KeyT key = default(KeyT); // TODO: 初始化为适当的值 IEnumerable <ValueT> values = null; // TODO: 初始化为适当的值 IEnumerable <ValueT> valuesExpected = null; // TODO: 初始化为适当的值 bool expected = false; // TODO: 初始化为适当的值 bool actual; actual = target.TryEnumerateValuesForKey(key, out values); Assert.AreEqual(valuesExpected, values); Assert.AreEqual(expected, actual); Assert.Inconclusive("验证此测试方法的正确性。"); }
/// <summary> /// 获取优先级最高的数据包 /// </summary> /// <returns></returns> public PacketExecuteInfo DequeueFirstPriority() { IEnumerable <PacketExecuteInfo> outValues = null; // 获取优先级最高的 m_PacketHandlers.TryEnumerateValuesForKey(PacketPriority.Highest, out outValues); if (outValues != null) { PacketExecuteInfo packetExecuteInfo = outValues.FirstOrDefault <PacketExecuteInfo>(); if (packetExecuteInfo != null) { m_PacketHandlers.Remove(PacketPriority.Highest, packetExecuteInfo); return(packetExecuteInfo); } } // 获取优先级通常之上的 outValues = null; m_PacketHandlers.TryEnumerateValuesForKey(PacketPriority.BelowNormal, out outValues); if (outValues != null) { PacketExecuteInfo packetExecuteInfo = outValues.FirstOrDefault <PacketExecuteInfo>(); if (packetExecuteInfo != null) { m_PacketHandlers.Remove(PacketPriority.BelowNormal, packetExecuteInfo); return(packetExecuteInfo); } } // 获取优先级通常的 outValues = null; m_PacketHandlers.TryEnumerateValuesForKey(PacketPriority.Normal, out outValues); if (outValues != null) { PacketExecuteInfo packetExecuteInfo = outValues.FirstOrDefault <PacketExecuteInfo>(); if (packetExecuteInfo != null) { m_PacketHandlers.Remove(PacketPriority.Normal, packetExecuteInfo); return(packetExecuteInfo); } } // 获取优先级通常之下的 outValues = null; m_PacketHandlers.TryEnumerateValuesForKey(PacketPriority.AboveNormal, out outValues); if (outValues != null) { PacketExecuteInfo packetExecuteInfo = outValues.FirstOrDefault <PacketExecuteInfo>(); if (packetExecuteInfo != null) { m_PacketHandlers.Remove(PacketPriority.AboveNormal, packetExecuteInfo); return(packetExecuteInfo); } } // 获取优先级最低的 outValues = null; m_PacketHandlers.TryEnumerateValuesForKey(PacketPriority.Lowest, out outValues); if (outValues != null) { PacketExecuteInfo packetExecuteInfo = outValues.FirstOrDefault <PacketExecuteInfo>(); if (packetExecuteInfo != null) { m_PacketHandlers.Remove(PacketPriority.Lowest, packetExecuteInfo); return(packetExecuteInfo); } } return(null); }