Simple navigateur web en C#

J'ai créé un simple navigateur web, mais je veux ajouter de la récursivité de la fonction, de sorte que chaque page qui s'ouvre, je peux obtenir l'url de cette page,mais je n'ai aucune idée de comment je peux le faire et je veux aussi inclure les threads pour le rendre plus rapide
ici, c'est mon code

namespace Crawler
{
    public partial class Form1 : Form
    {
        String Rstring;

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            WebRequest myWebRequest;
            WebResponse myWebResponse;
            String URL = textBox1.Text;

            myWebRequest =  WebRequest.Create(URL);
            myWebResponse = myWebRequest.GetResponse();//Returns a response from an Internet resource

            Stream streamResponse = myWebResponse.GetResponseStream();//return the data stream from the internet
                                                                       //and save it in the stream

            StreamReader sreader = new StreamReader(streamResponse);//reads the data stream
            Rstring = sreader.ReadToEnd();//reads it to the end
            String Links = GetContent(Rstring);//gets the links only

            textBox2.Text = Rstring;
            textBox3.Text = Links;
            streamResponse.Close();
            sreader.Close();
            myWebResponse.Close();




        }

        private String GetContent(String Rstring)
        {
            String sString="";
            HTMLDocument d = new HTMLDocument();
            IHTMLDocument2 doc = (IHTMLDocument2)d;
            doc.write(Rstring);

            IHTMLElementCollection L = doc.links;

            foreach (IHTMLElement links in  L)
            {
                sString += links.getAttribute("href", 0);
                sString += "/n";
            }
            return sString;
        }
Voter à près pas bien l'étendue de la question. Veuillez considérer la recherche pour "web crawler en C#" et le raffinage de vous remettre en question pour être plus ciblée.
Vous ne voulez certainement pas à utiliser la récursivité que vous ne serez pas en mesure de tenir l'état de l'internet sur la pile locale.Vous pouvez utiliser une Pile comme Tom l'a suggéré, mais vous devez inverser l'ordre dans lequel vous ajoutez AbsoluteUris pour être analysées, d'autre la nature de la pile avez-vous l'analyse de la bas de la page, et si vous allez écrire un robot, vous devez avoir la récupération de comportement correspondent à un navigateur aussi étroitement que possible. Une File d'attente est un meilleur choix. Un PriorityQueue est encore meilleure.
PriorityQueue svn.arachnode.net/svn/arachnodenet/trunk/Structures/... nom d'utilisateur/Mot de passe: Public / Public
Jetez un oeil ici: neelbhatt40.wordpress.com/2016/07/19/webcrawler-in-c-net

OriginalL'auteur Khaled Mohamed | 2012-05-04