Utilisation de WebClient (attendre la fin du thread)
Bonjour,
J'ai actuellement une application [Silverlight] qui utilise WebClient afin d'accéder à un fichier XML.
Ce fichier XML doit être charger au démarage de l'application car tout est basé sur sont contenu (mise en forme de l'appli/utilisation des données ...) or étant donnée que je fais appel à DownloadStringAsync l'application n'attend pas le chargement du fichier pour continuer ce qui la plante inévitablement.
Ma question est comment attendre le résultat de DownloadStringAsync afin de continuer ?
Voici mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
rivate string urlFile;
private XElement sheets;
public XmlFile()
{
UrlFile = "/Charts.xml";
string host = (App.Current.Host.Source.AbsoluteUri).Substring(0, App.Current.Host.Source.AbsoluteUri.Length - App.Current.Host.Source.AbsolutePath.Length);
TakeFileFromUri(host + UrlFile);
}
public void TakeFileFromUri(String URL)
{
Uri uri = new Uri(URL, UriKind.RelativeOrAbsolute);
WebClient client = new WebClient();
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(DownloadStringCallback2);
client.DownloadStringAsync(uri);
}
private void DownloadStringCallback2(Object sender, DownloadStringCompletedEventArgs e)
{
string resultBlock;
if (e.Error == null)
resultBlock = e.Result;
else
resultBlock = e.Error.ToString() + "erreur";
XmlReader XmlFile = XmlReader.Create(new System.IO.StringReader(resultBlock));
this.Sheets = XElement.Load(XmlFile);
} |
Merci de votre aide