0

以下は私のコードで、このコードを実行すると何が起こるか、まず約 1 時間自由に実行されます (多くのメモリを消費します - 約 400MB の RAM から始まり、最大 1GB になります)。しかし、1 時間ほど後に VSHOST がクラッシュします。そしてVisual Studioは例外をキャッチしません..なぜこれが起こっているのですか? tnx :)

    private void UpdateLastPosted()
    {
        WebClient wc = new WebClient();
        string html = wc.DownloadString("http://blogs.com/lastblogs.aspx");
        MatchCollection collection = Regex.Matches(html, @"blogs\.com/blogread\.asp\?blog=(\d+)");
        foreach (Match pend in collection)
        {
            pending.Enqueue(pend.Groups[1].Value);
        }
    }

    private void browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        if (((WebBrowser)sender).ReadyState == WebBrowserReadyState.Complete)
        {
            if (pending.Count > 0)
            {
                ((WebBrowser)sender).Stop();
                NavigateTo("http://blogs.com/blogread.asp?blog=" + pending.Dequeue());
            }
            else
            {
                UpdateLastPosted();
                UpdateMostActive();
                if (pending.Count > 0)
                {
                    ((WebBrowser)sender).Stop();
                    NavigateTo("http://blogs.com/blogread.asp?blog=" + pending.Dequeue());
                }
            }
        }
    }

    public void NavigateTo(string url)
    {
        browser.Navigate(url);
    }
4

1 に答える 1

-1

HTML ページのすべての要素に対して、メソッド browser_DocumentCompleted が呼び出されます。正確な URL または類似の URL を指定してみてください:

private void browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        if(e.Url.OriginalString.ToLower() == "http://www.myisite.com/contact.aspx")
        {
           ......
于 2012-10-07T12:20:25.863 に答える