Example #1
0
        static void Main(string[] args)
        {
            SpiderHttpUtility httpUtility = new SpiderHttpUtility();

            string aa = httpUtility.GetResponseAsync("http://sh.58.com/chuzu/?PGTID=0d100000-0000-2f7e-add9-ea91e0490f2a&ClickID=3").Result;

            Console.WriteLine(aa);

            Console.ReadLine();
        }
        private async Task Run()
        {
            int flag = 0;

            while (flag < 10)
            {
                try
                {
                    string url = string.Empty;

                    lock (UrlQueue.UrlStringQueue)
                    {
                        int urlLeft = UrlQueue.UrlStringQueue.Count;
                        if (urlLeft == 0)
                        {
                            flag++;
                        }
                        else
                        {
                            url = UrlQueue.UrlStringQueue.Dequeue();
                        }
                    }

                    if (string.IsNullOrEmpty(url))
                    {
                        Thread.Sleep(3000);
                        continue;
                    }


                    string html = await _httpUtility.GetResponseAsync(url);

                    var list = _serviceProvider.GetService <IEnumerable <IHandHtml> >();
                    foreach (var item in list)
                    {
                        item.DoHandHtml(html);
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    flag = 100;

                    continue;
                }
            }

            Console.WriteLine($"由于等待了30秒之后队列中还是为空,线程:{Thread.CurrentThread}工作完成");
        }