Hallo
habe folgendes Problem.
Ich habe eine Inetseite wo ich alle Links auslese und sie anschließend in eine ListBox schreibe. Dann sollen die Links abgearbeitet werden und die Informationen in ein Datagridview geschrieben werden.
Erst fängt die ListBox an und nach einiger Zeit erscheinen die Informationen im Datagridview.
Ich möchte aber das im Datagridview die Informationen Zeile für Zeile sichtbar werden und nicht erst wenn alle Links abgearbeitet sind.
Vielleicht habt ihr ja eine Idee wie ich das ändern kann und somit die Performence besser wird.
private void button1_Click(object sender, EventArgs e)
{
this.url = "http://www.............";
//Webseite laden
WebRequest req = WebRequest.Create(this.url);
WebResponse resp = req.GetResponse();
Stream stream = resp.GetResponseStream();
StreamReader sr = new StreamReader(stream);
string s = sr.ReadToEnd();
this.HTML = s;
ArrayList a = new ArrayList();
Regex javascript = new Regex("script type=\\\"text/javascript\\\"\\>(?<Brutto>[^\\>]*)", RegexOptions.Singleline);
string java = javascript.Match(this.HTML).Value;
Regex trefferliste = new Regex("http://www([\\w+?\\.\\w+])+([a-zA-Z0-9\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)_\\-\\=\\+\\\\\\/\\?\\.\\:\\;]*)?", RegexOptions.IgnoreCase);
MatchCollection mcl = trefferliste.Matches(java);
foreach (Match ml in mcl)
{
a.Add(ml);
listBox1.Items.Add(ml);
listBox1.SelectedIndex = listBox1.Items.Count - 1;
this.url = listBox1.SelectedItem.ToString();
//Webseite laden
WebRequest req2 = WebRequest.Create(this.url);
WebResponse resp2 = req2.GetResponse();
Stream stream2 = resp2.GetResponseStream();
StreamReader sr2 = new StreamReader(stream2);
string s2 = sr2.ReadToEnd();
this.HTML = s2;
Regex regex = new Regex("div class=\"slideshow_makemodel\"\\>\\s*(?<Brutto>[^\\<]*)\\s*", RegexOptions.CultureInvariant | RegexOptions.Compiled);
string inputmarke = regex.Match(this.HTML).Groups["Brutto"].Value;
string marke = inputmarke.Replace("div class=\"slideshow_makemodel\">", "");
dataGridView1.Rows.Add(inputmarke);
}
Gruß
Marc
Oder schau dir mal den BackgroundWorker an.
mfg
serial
hast du da ein passendes Beispiel für mich?
Bitte beachte [Hinweis] Wie poste ich richtig? 1.1 und 1.1.1 sowie 4b.
Schau in den Faq und Artikel Bereich für Multithreading (insbesondere [FAQ] Warum blockiert mein GUI?) und schau in die MSDN für den Backgroundworker. Da findest du überall Beispiele.