public void InitUserTotalLossList(List<ISimulationUser> userList, List<ISimulationCarrier> allCarrierList, ReportProgressDelegate reporter) { Dictionary<string, List<CarrierTotalLoss>> userTotalLossDic = new Dictionary<string, List<CarrierTotalLoss>>(); allCarrierList.Sort(new Comparison<ISimulationCarrier>(this.SortCarrierBySite)); initUserTotalLossDic(userList, allCarrierList,userTotalLossDic); ISimulationCarrier preCarrier = null; float count = allCarrierList.Count; //用28除是什么意思 float usedCounter = 28f / count; List<SimulationUser> relayUserList = new List<SimulationUser>(); foreach (SimulationCarrier carrier1 in allCarrierList) { relayUserList.AddRange(carrier1.UlRelayUserList); } foreach (SimulationCarrier carrier2 in allCarrierList) { this.ClearUserSiteShadowValue(preCarrier, carrier2); Dictionary<bool, List<User>> userDic = GetInComputerAreaUsers(userList, relayUserList,carrier2); List<RelayCell> relayCells = GetInComputerAreaRCs(carrier2, relayUserList); UpdateUserTotalLoss(userDic,relayCells, carrier2, userTotalLossDic); if (reporter != null) { reporter(usedCounter); } } this.m_TotalLossCalObj.releaseMediacy(); this.m_TotalLossCalObj = null; GC.Collect(); this.initCarrierListInComputeArea(userList, allCarrierList, userTotalLossDic); }
public TotalLossMatrix(OtherSubSysInterface subSysInterface, Coefficient coefficientABC) { this.m_TotalLossCalObj = new TotalLossCalculation(subSysInterface, coefficientABC); }