VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 634|回复: 7

求救:同时打开几十个WebBrowser时没有调用show方法却自动显示出来.

[复制链接]

1

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-1-9 23:20:01 | 显示全部楼层 |阅读模式
同时打开几十个WebBrowser时,并没有调用它们的show()方法.为何有时WebBrowser打开网页失败时会自动把WebBrowser显示出来,而有时侯却又不会?

调用的代码:
for (int j = pageStartNum; j < pageStartNum + loopCount; j++)
{
        HTMLAnalysis htmAnalysis = new HTMLAnalysis();
              string url = websiteURL + "&" + subURL + "=" + currIndustryCode + "&" + paginationFalg + "=" + j;
              htmAnalysis.startProcess(url);
              htmAnalysis = null;
             Thread.Sleep(500);
}

class HTMLAnalysis的代码:
            try
            {
                Uri uri = new Uri(url);
                page.ScriptErrorsSuppressed = true;
                page.Navigate(uri);
                page.Left = -page.Width;
                page.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(Process);
            }
            catch (Exception ex)
            {
                DisplayMessage(ex.ToString());
            }

        private void Process(object sender, WebBrowserDocumentCompletedEventArgs e)
                {
                if (page.ReadyState == WebBrowserReadyState.Complete)
                {
                    try
                   {
                   ******************
                   }
                   catch (Exception ex)
                   {
                    HTMLAnalysis.failCount++;
                    MessageBox.Show(ex.Message);
                  }
                  finally
                  {
                    page.Controls.Clear();
                    page.Dispose();
                    page = null;
                }
            }

是不是dispose()的问题,有哪位遇到过这种情况?
回复

使用道具 举报

1

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-1-11 10:54:02 | 显示全部楼层
page是WebBrowser对象
在HTMLAnalysis class中定义的WebBrowser page = new WebBrowser();
回复

使用道具 举报

1

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-1-11 19:18:02 | 显示全部楼层
自己顶..别沉了.

怎么还没有高手来.
回复

使用道具 举报

1

主题

5

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-1-13 11:27:01 | 显示全部楼层

是不是你本来想用WebBrowser读取网页又不想界面显示出来, 但是界面偶尔又显示出来了?
回复

使用道具 举报

1

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-1-13 14:18:01 | 显示全部楼层
是的.就是这样.
应该怎样解决?
回复

使用道具 举报

1

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-1-14 16:54:01 | 显示全部楼层

是不是因为调用了         htmAnalysis = null;

?

当 page.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(Process);
调用的Process()还未执行时, htmAnalysis 却为 null 了?


回复

使用道具 举报

1

主题

5

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-2-18 06:15:01 | 显示全部楼层

up
回复

使用道具 举报

1

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-8-3 20:45:02 | 显示全部楼层
问题已经解决了就是dispose()的问题.
很奇怪,如果webbrowser打开website失败,dispose就会出现这中问题.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表