2

を使用しWebClientてhtmlファイルをダウンロードしています:

        private static string PullHTML(string url)
        {
            string data = null;
            if (url != null)
            {
                if (!WebCache.TryGetValue(url, out data))
                {
               //THIS CODE IS REACHED
                    try
                    {
                        using (QuickWebClient wc = new QuickWebClient())
                        {

                            data = wc.DownloadString(url); //Debugging ends here
                        }
                    }
                    catch (WebException e)
                    {
               //THIS CODE IS NEVER REACHED
                        Console.WriteLine(e.Message);
                        data = e.Message;
                    }
               //NEITHER IS THIS
                    WebCache.Add(url, data);
                }
            }
            return data;
        }

        private class QuickWebClient : WebClient
        {
            protected override WebRequest GetWebRequest(Uri uri)
            {
                WebRequest w = base.GetWebRequest(uri);
                w.Timeout = 5 * 60 * 1000;
                return w;
            }
        }

これは別のスレッドで実行されます(デバッグ目的でオーバーロードしましたが、問題は以前に始まりました)。さて、このコードは実行中のスレッドをクラッシュさせるように見えることがよくあります。スレッドは基本的に停止します。デバッガーは行に到達するとすぐに終了するため、デバッグできませんDownloadStringF5を押したかのように動作します。例外はスローされません。スレッドは継続しません。何が起こっていますか?

4

0 に答える 0