Je suis en train de développer une application sur un Pocket PC possédant Windows Mobile 5 et j'utilise le Compact Framework 1.
Je souhaite modifier mon IHM depuis une autre thread. Afin d'y arriver, j'utilise des délégués et des invokes.
Mon code fonctionne très bien sur l'émulateur Pocket PC, mais par sur le vrai Pocket PC !
public void chercheRepertoire()
{
Thread t = new Thread(new ThreadStart(cherche));
t.Start();
}
public void cherche()
{
// recupère une liste de repertoire
/* ... */
maMethode meth = new maMethode(updateIHM);
this.Invoke(meth);
}
public void updateIHM()
{
ListViewItem lvi = new ListViewItem("tartampion");
lvi.SubItems.Add("patate")
this.listView1.Items.Add(lvi);
}
<hr size="2" width="100%" />
A priori, le problème semble survenir lorsque j'appelle la méthode this.Invoke(meth)
C'est bizarre, mais lorsque je remplace this.Invoke(meth) par meth(),
le code fonctionne alors très bien sur le vrai Pocket PC, mais plus sur l'émulateur!!!
Et encore, lorsque je dit qu'il fonctionne très bien, j'exagère puisqu'en fait, l'application freeze au moment de l'ajout dans listView1 (commande listView1.Items.Add(lvi) ).
Quelqu'un aurait'il une solution à ce(s) problème(s) ?
"Une chose me laisse perplexe : Est-ce moi ou les autres qui sont fous ?" A. Einstein
<!--
je te conseille de poser ta question sur le forum de www.pdafrance.com ou de www.codeppc.com, tu auras plus de chance de recevoir une réponse à ta question.