L'application appelle une interface qui a été mobilisé pour un thread différent dans la fenêtre 8
En projet j'utilise HttpWebRequest de téléchargement Rss :
HttpWebRequest request;
public void getFeeds()
{
request = (HttpWebRequest)WebRequest.Create("http://vnexpress.net/rss/gl/trang-chu.rss");
request.BeginGetResponse(ResponseCallBack, request);
}
SampleDataGroup group1;
private void ResponseCallBack(IAsyncResult result)
{
var request = (HttpWebRequest)result.AsyncState;
var response = request.EndGetResponse(result) as HttpWebResponse;
if (response != null && response.StatusCode == HttpStatusCode.OK)
{
var stream = response.GetResponseStream();
using (StreamReader reader = new StreamReader(stream))
{
string strReaderReader = reader.ReadToEnd();
XDocument doc = XDocument.Parse(strReaderReader);
var element = doc.Root.Element("channel").Elements("item");
group1 = new SampleDataGroup("Group-1",
"Hot News",
"Group Subtitle: 1",
"Assets/DarkGray.png",
"");
foreach (XElement x in element)
{
group1.Items.Add(new SampleDataItem("", x.Element("title").Value, "", "", "", "", group1));
}
request.Abort();
request = null;
_allGroups.Add(group1);
onComplete1();
}
}
}
onComplete1() est délégué , je l'utilise pour mettre à jour lors de la mise en page pares XMl complet.
Mais il erros :
System.Exception: The application called an interface that was marshalled for a different thread. (Exception from HRESULT: 0x8001010E (RPC_E_WRONG_THREAD))
S'il vous plaît aider moi !
Avez-vous un code qui tente de mettre à jour l'INTERFACE utilisateur ici?
OriginalL'auteur thongaduka | 2012-06-27
Vous devez vous connecter pour publier un commentaire.
Le plus souvent, votre
onComplete1()
méthode ne fournit une INTERFACE utilisateur l'accès.Essayer de l'inclure dans une Répartiteur.RunAsync méthode:
ou l'attendent comme une Tâche, en fonction de vos besoins:
OriginalL'auteur Magnus Johansson