Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem C# - komponenta WebBrowser

Dobrý den, mám takový začátečnický dotaz o C#... mám formulářovou aplikaci s komponentou WebBrowser a chci po ní následující:

- připoj se na k-tou URL ze seznamu

- načti zdroják dané stránky a ten ulož do řetězce

- vyfiltruj z něj data a ta přidej do dalšího řetězce

- opakuj, dokud takto neprojedeš všechny URL ze seznamu

Problém je, že program se sice připojí na stránky (resp. zahájí připojování), ale než se stačí celá stránka načíst, aby se mohl stáhnout její zdrojový kód, program přeskočí na další stránku, takže se načte jenom ta poslední (a ani u té se nestáhne zdroják napoprvé - k tomu musím spustit cyklus ještě jednou).

Zkoušel jsem breaknout cyklus s tím, že počká na načtení zdrojáku do stringu, ale to nefungovalo. Pokud zkusím vložit příkaz uspání (Thread.Sleep) před příkaz načtení zdrojáku, aby stránka měla čas se načíst, zamrzne i načítání stránky, takže se stejně projedou všechny bez stažení zdrojáku. Zkoušel jsem před uspání vložit i příkaz Application.DoEvents, ale ani s tím to nefungovalo.

Nemám to místo for/while cyklu zkusit regulovat třeba přes Timer? Popřípadě, existuje u komponenty prohlížeče nějaká možnost práce s načítáním stránky? Například něco jako "čekej, dokud stránka nebude načtena kompletně", nebo alespoň "nahlaš, zda byla stránka načtena kompletně". Nebo si mám rovnou napsat prohlížeč vlastní? Nebo jak se to dá vyřešit?

Děkuji za rady.

Předmět Autor Datum
Na další stránku se posuň až po ošetření události OnDocumentCompleted poslední
Wikan 10.02.2013 20:11
Wikan

Zpět do poradny Odpovědět na původní otázku Nahoru