C# 在处理链接时,如何实时计算链接总数?

C# 在处理链接时,如何实时计算链接总数?,c#,C#,我有这个代码,它是一个函数,调用它自己的所有时间。 我正在使用backgroundworker,在backgroundworker Dowork事件中,我第一次通过单击按钮调用该函数来启动流程 在这个函数中,我有两个使用标签12和标签10文本属性的位置。 标签12表示坏链接,标签10表示好链接。机器人正在实时工作文本正在实时更改 在该函数中,我可以使用标签3文本将标签12和标签10相加,并显示链接总数 像这样: this.Invoke(new MethodInvoker(delegate { l

我有这个代码,它是一个函数,调用它自己的所有时间。 我正在使用backgroundworker,在backgroundworker Dowork事件中,我第一次通过单击按钮调用该函数来启动流程

在这个函数中,我有两个使用标签12和标签10文本属性的位置。 标签12表示坏链接,标签10表示好链接。机器人正在实时工作文本正在实时更改

在该函数中,我可以使用标签3文本将标签12和标签10相加,并显示链接总数

像这样:

this.Invoke(new MethodInvoker(delegate { label3.Text = label12 + label10 }));
问题是:

  • 如何计算label12和label10的和,使label3表示一个整数

  • 我应该把这个label3.文本行放在函数中的什么位置

  • 代码如下:

    private List<string> test(string url, int levels,DoWorkEventArgs eve)
            {
    
    
                HtmlWeb hw = new HtmlWeb();
                List<string> webSites;
                List<string> csFiles = new List<string>();
    
                csFiles.Add("temp string to know that something is happening in level = " + levels.ToString());
                csFiles.Add("current site name in this level is : " + url);
                try
                {
                    this.Invoke(new MethodInvoker(delegate { Texts(richTextBox1, "Loading The Url:   " , Color.Red); }));
                    this.Invoke(new MethodInvoker(delegate { Texts(richTextBox1, url + "...",Color.Blue); }));
                    HtmlAgilityPack.HtmlDocument doc = TimeOut.getHtmlDocumentWebClient(url, false, "", 0, "", "");
    
                    this.Invoke(new MethodInvoker(delegate { Texts(richTextBox1, " Done " + Environment.NewLine, Color.Red); }));
    
    
                        currentCrawlingSite.Add(url);
                        webSites = getLinks(doc);
                        removeDupes(webSites);
                        removeDuplicates(webSites, currentCrawlingSite);
                        removeDuplicates(webSites, sitesToCrawl);
                        if (removeExt == true)
                        {
                            removeExternals(webSites);
                        }
                        if (downLoadImages == true)
                        {
                            webContent.retrieveImages(url);                    }
                        if (levels > 0)
                            sitesToCrawl.AddRange(webSites
                        this.Invoke(new MethodInvoker(delegate { label7.Text = sitesToCrawl.Count.ToString(); }));
                        this.Invoke(new MethodInvoker(delegate { label12.Text = currentCrawlingSite.Count.ToString(); }));
    
    
                        if (levels == 0)
                        {
                            return csFiles;
                        }
                        else
                        {
    
    
    for (int i = 0; i < webSites.Count(); i++)//&& i < 20; i++)                         
                            { 
    
    
                                string t = webSites[i];
                                if ((t.StartsWith("http://") == true) || (t.StartsWith("https://") == true)) // replace this with future FilterJunkLinks function
                                {
                                    csFiles.AddRange(test(t, levels - 1, eve));                                
                                }
    
                            }
                            return csFiles;
                        }
    
    
    
                }
                catch
                {
                    failedUrls++;
                    this.Invoke(new MethodInvoker(delegate { label10.Text = failedUrls.ToString(); }));
                    this.Invoke(new MethodInvoker(delegate { Texts(richTextBox1, " Failed " + Environment.NewLine, Color.Green); }));
                    return csFiles;
                }
    
            }
    
    私有列表测试(字符串url、int级别、DoWorkEventArgs eve)
    {
    HtmlWeb hw=新的HtmlWeb();
    列出网站;
    List csFiles=新列表();
    csFiles.Add(“临时字符串,以了解level=“+levels.ToString())中正在发生的事情”;
    csFiles.Add(“此级别中的当前站点名称为:“+url”);
    尝试
    {
    Invoke(新的MethodInvoker(委托{text(richTextBox1,“加载Url:”,Color.Red);});
    Invoke(新的MethodInvoker(委托{text(richTextBox1,url+“…”,Color.Blue);});
    HtmlAgilityPack.HtmlDocument doc=TimeOut.getHtmlDocumentWebClient(url,false,“,0,”,”);
    Invoke(新的MethodInvoker(委托{text(richTextBox1,“Done”+Environment.NewLine,Color.Red);});
    CurrentScrawlingSite.Add(url);
    网站=获取链接(doc);
    删除用户(网站);
    移除的副本(网站、当前爬网站点);
    移除的副本(网站、站点爬网);
    如果(RemoveText==true)
    {
    移除外部(网站);
    }
    if(downLoadImages==true)
    {
    webContent.RetrieveImage(url);}
    如果(级别>0)
    sitesToCrawl.AddRange(网站
    Invoke(新的MethodInvoker(委托{label7.Text=sitesToCrawl.Count.ToString();}));
    Invoke(新的MethodInvoker(委托{label12.Text=CurrentScrawlingSite.Count.ToString();}));
    如果(级别==0)
    {
    返回CSF文件;
    }
    其他的
    {
    对于(int i=0;i
    要将字符串从
    标签
    转换为数字,请使用以下命令:

    int number = Int32.Parse(someLabel);
    
    因此,您的代码应该是:

    label3.Text = (Int32.Parse(label12.Text) + Int32.Parse(label10.Text)).ToString();
    

    MatthewRz label3中的结果是:首先00,然后当一个标签上升1时,其10,然后20,然后30,然后40,然后50,60,70,80,90,然后100,然后当seocnd标签上升1时,其101,然后第一个标签再次上升1,其111,然后112,然后122 132。。。以此类推……有些东西的总和不太好。@DanielLip它应该起作用,当
    label3
    为101时,
    label12
    label10
    的值是多少?例如,MatthewRz现在标签13为141,label12显示14,label10显示1,label13应该显示15。请在帖子中尝试代码,我编辑了它。它现在应该给出正确的结果。