Example #1
0
        //Dodaj odcinek do wspolnej listy
        private void addEpisodes(object threadParam)
        {
            ThreadParam context = (ThreadParam)threadParam;
            SearchTvdb  S       = new SearchTvdb();

            sumEpisodes(S.getAllEpisodes(context._id, context._page));
        }
Example #2
0
        //Pobiera asynchronicznie  wszystkie odcinki i zwraca ich liste
        public List <Episode> getEpisodes(int seriesID)
        {
            List <Thread> th  = new List <Thread>();
            SearchTvdb    STV = new SearchTvdb();

            //Na stronie mieście się max 100 odcinków, jeden wątek zajmie się jedną odpowiedzią
            for (int i = 0; i < Math.Ceiling((decimal)STV.getOverallEpisodesNumber(seriesID) / 100); i++)
            {
                Thread t = new Thread(new ParameterizedThreadStart(addEpisodes));
                th.Add(t);
                t.IsBackground = true;
                t.Start(new ThreadParam(seriesID, i + 1));
            }

            foreach (Thread t in th)
            {
                t.Join();
            }

            //Po dodaniu przez wątki list - sortowanie
            ep = ep.OrderBy(x => x._seasonNumber).ThenBy(y => y._episodeNumber).ToList();

            if (ep.Count > 0)
            {
                deleteSpecials();
            }

            return(ep);
        }