Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 public TotalLossMatrix(OtherSubSysInterface subSysInterface, Coefficient coefficientABC)
 {
     this.m_TotalLossCalObj = new TotalLossCalculation(subSysInterface, coefficientABC);
 }