Концепция потоковой передачи для улучшения процесса навигации по URL-адресам webbrowsers в C#
Я разработал простую проверку идентификаторов windows forms с помощью приложения C#, чтобы проверить набор заданных идентификаторов, действительных или нет, Перейдя на веб - страницу с помощью элемента управления webbrowser и получив ответ, и все работает нормально, это занимает 40-60 секунд для 20 идентификаторов.один за другим.Теперь я хочу ускорить тот же процесс, используя концепцию Advanced threading в C# .
мой рабочий код, как под .
private void button2_Click(object sender, EventArgs e) { string url = "https://idscheckingsite.com"; WebBrowser wb = new WebBrowser(); wb.ScriptErrorsSuppressed = true; wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(Final_DocumentCompleted); wb.Navigate(url); }
private void Final_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { WebBrowser wbs = sender as WebBrowser; wbs.Document.GetElementById("pannumber").InnerText = ListsofIds[ids]; wbs.Document.GetElementById("frmType1").SetAttribute("value", "24Q"); HtmlElement btnlink = wbs.Document.GetElementById("clickGo1"); btnlink.InvokeMember("Click"); //string response = wbs.DocumentText; wbs.DocumentCompleted -= new WebBrowserDocumentCompletedEventHandler(Final_DocumentCompleted); wbs.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(Final_result); }
private void Final_result(object sender, WebBrowserDocumentCompletedEventArgs e) { WebBrowser wbResult = sender as WebBrowser; string status = wbResult.Document.GetElementById("status").InnerText; string name = wbResult.Document.GetElementById("name").InnerText; wbResult.DocumentCompleted -= new WebBrowserDocumentCompletedEventHandler(Final_result); wbResult.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(Final_DocumentCompleted); DataRow dr = dt.NewRow(); dr[0] = PANNumber[ids]; dr[1] = status; dr[2] = name; dt.Rows.Add(dr); ++ids; if (ids < 20) wbResult.Navigate(vurl); else { dataGridView1.DataSource = dt; } }
Как повысить производительность до максимума, используя потоковую обработку в C# . Пожалуйста, помогите мне его срочно . заранее спасибо.
- Мартин
Что я уже пробовал:
попытался с помощью окна управления WebBrowser брать 44 - 60 секунд за 20 проверки документов .
Richard MacCutchan
Нет никакой гарантии, что резьба будет иметь какое-либо значение. Сначала вам нужно выяснить, где находится узкое место. Если большая часть задержки связана с сетевым трафиком, то вы мало что можете сделать для повышения скорости обработки.
И, кстати, это ни в коей мере не срочно для здешних людей.