Увеличить cкорость парсера

Как можно увеличить скорость парсинга страниц указанные в richtextbox. У меня особо мало опыта владения C# и знаю что в коде есть костыли. Не ругайте сильно :) В коде много чего лишнего, чуть позже уберу. Пока хочу разобраться, как увеличить скорость парсинга. Parallel.ForEach особо не помог в моей ситуации. Подумывал о асинхронности, но не понимаю как это сделать.

private void ThreadMain(ParallelOptions po)
{
    try
    {
        string[] sptext = searchText.Split();
        var web = new HtmlAgilityPack.HtmlWeb();
        var htmlDoc = new HtmlAgilityPack.HtmlDocument();

        Parallel.ForEach(sptext, po, (sites, state) =>
        {
            if (po.CancellationToken.IsCancellationRequested)
            {
                state.Stop();
            }

            try
            {
                string url = $"{sites}";
                htmlDoc.LoadHtml(web.Load(url).Text);
                content = htmlDoc.DocumentNode.SelectSingleNode("//div[@id='']").InnerText;

                richTextBox2.Invoke((MethodInvoker)delegate
                {
                    richTextBox2.Text += ""; //content
                    richTextBox3.Text += $" {sites}" + "\n";
                    sp = ++sp;
                });
            }
            catch (Exception ex1)
            {
                richTextBox2.Invoke((MethodInvoker)delegate
                {
                    try
                    {
                        content = htmlDoc.DocumentNode.SelectSingleNode("//form[@id='captcha-form']").InnerText;

                        state.Stop(); //Если вылезла капча

                    }
                    catch (Exception ex2)
                    {
                        richTextBox2.Text += "0" + "\n";
                        richTextBox3.Text += $" {sites}" + "\n";
                        sp = ++sp;
                    }
                });
            }
        });
    } catch (Exception ex3)
    {
        MessageBox.Show("", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
}

Ответы (0 шт):