Problém je však v tom, že bych potřeboval, aby se to celé načetlo a obnovilo znovu v nějakém intervalu (10s). V tuto chvíli moje řešení funguje tak, že to stahuji přes DownloadStringAsync(). To ale do cyklu uzavřít nejde, protože to pak hlásí "WebClient does not support concurrent I/O operations." - proč, to už chápu.
Jak to tedy upravit tak, aby po zapnutí aplikace naskočil cyklus, kde by se každých 10s ten xml soubor stáhl znovu? V současnoti to mám přibližně takto (pro jednoduchost dávám ořezaný kód):
Code: Select all
public partial class MainPage : PhoneApplicationPage
{
public WebClient client = new WebClient();
public MainPage()
{
InitializeComponent();
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);
LoadData(client);
void LoadData(WebClient client)
{
client.DownloadStringAsync(new Uri("http://url.zdrojoveho.xml"));
}
void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
string a = e.Result;
XDocument doc = XDocument.Parse(a);
var nejakyList = from xxxx in doc.Descendants("XML")
select (new nejakaTrida
{
//naplnit daty
});
foreach (nejakaTrida in nejakyList)
{
//pridam pushPiny atd...
}
}
}
}