Пример #1
0
        //private void m_ProcessFiles(Object state)
        private void m_ProcessFiles()
        {
            DateTime startTime;
            float    velocidadTotal = 0;
            TimeSpan timeUsed;
            int      timeSleep;

            //m_FileListThread.Change(Timeout.Infinite,Timeout.Infinite);

            while (m_FileListThread.IsAlive)
            {
                startTime = DateTime.Now;
                CKernel.ConnectionsList.CheckTimeOuts();
                if (m_OSigInterval >= 30)
                {
                    CKernel.OSig("");
                    m_OSigInterval = 0;
                }
                else
                {
                    m_OSigInterval++;
                }

                CKernel.SourcesOld.CleanOldSources();
                velocidadTotal = 0;
                lock (m_FileList.SyncRoot)
                {
                    foreach (CElement Elemento in m_FileList)
                    {
                        if (Elemento.SourcesList != null)
                        {
                            Elemento.SourcesList.Process();
                        }
                        if (Elemento.SourcesList != null)
                        {
                            velocidadTotal += Elemento.SourcesList.GetDownloadSpeed();
                        }
                    }
                }
                m_GlobalDownSpeed = velocidadTotal;

                m_relayAdjust--;
                if (m_relayAdjust == 0)
                {
                    m_relayAdjust = 5;
                    AdjustSpeed();
                }
                timeUsed = DateTime.Now - startTime;
                if (timeUsed.TotalMilliseconds > 1000)
                {
                    timeSleep = 1;
                }
                else
                {
                    timeSleep = 1000 - (int)timeUsed.TotalMilliseconds;
                }
                Thread.Sleep(timeSleep);

//				if (timeUsed.TotalMilliseconds>1000)
//					m_FileListThread.Change(1,Timeout.Infinite);
//				else
//					m_FileListThread.Change(1000-(int)timeUsed.TotalMilliseconds,Timeout.Infinite);
            }
        }