2009-08-15 4 views
0

J'essaie que mon application télécharge le code source d'un site Web et filtre les informations dont j'ai besoin pour tirer sur mon application.WebClient.DownloadString() fait geler mon application pendant le "téléchargement" du code source

Tout va bien et dandy cependant l'interface utilisateur se bloque jusqu'à ce que mon application finisse de télécharger le code source du site.

S'il y a n'importe où Je peux obtenir de l'aide, cela doit être l'endroit. :)

Voici le code qui me fait pleurer:

public void LoadPlayersOnline() 
    { 
     WebClient WebClientClass = new WebClient(); 

     string SiteSource = WebClientClass.DownloadString("http://forums.chronic-domination.com/"); 
     int AlliancePos = SiteSource.IndexOf("Alliance"); 
     string AlliancePlayers = SiteSource.Substring((AlliancePos + 14), 3); 

     label5.Text = AlliancePlayers; 
    } 

Répondre

3

Vous voulez plus susceptibles d'utiliser DownloadStringAsync. Ensuite, implémentez les événements dessus http://msdn.microsoft.com/en-us/library/system.net.webclient_events(VS.80).aspx DownloadCompleted.

http://msdn.microsoft.com/en-us/library/system.net.webclient.downloadstringasync(VS.80).aspx

+1

Après avoir lu le lien fourni, je ne peux pas sembler comprendre comment utiliser le « DownloadStringCallback »? Qu'est-ce que c'est? Merci pour l'aide. –

+0

DownloadStringCallback peut être un rappel méthode qui a un argument de DownloadStringCompletedEventArgs public static void DownloadStringCallback2 (émetteur d'objets, DownloadStringCompletedEventArgs args) { // Si la demande n'a pas été annulée et n'a pas jeté // une exception, afficher la Ressource. if (! Args.Cancelled && args.Error == null) { chaîne text Chaîne = (chaîne) arguments.Résultat; Console.WriteLine (textString); } } – jwendl

+1

Débordement de pile incorrect ... Consultez simplement l'exemple sur http://msdn.microsoft.com/en-us/library/system.net.downloadstringcompletedeventargs(VS.80).aspx – jwendl