Mon problème se situe au niveau du rafraichissement d'un CListCtrl par plusieurs threads.
par exemple ma liste a deux colonnes, A et B.
dans un premier temps un thread envoie un ordre d'insertion d'item.
jusque là tout va bien.
ensuite un thread (le meme) envoie un autre message à ma liste avec le champ Bi correspondant au Ai.
tout ça fonctionne paisiblement sous windows 2000, mais sous xp, il arrive que le champ Bi ne corresponde pas au champ Ai.
j'utilise PostMessage(hWnd, WM_USER + xxx,...), avec deux types de messages, 'onnew' et 'onupdate'
j'ai bien verifié en deboguant que le message d'update envoyé contenant Ai et Bi etait correct (tout correspond)
j'ai modifié le code pour que, lors de l'update d'un item, le thread du dialogue qui reçoit le message parcoure toute la liste jusqu'a trouver le champ Ai correspondant puis "setter" le Bi, ça fait pareil.
j'ai carrement testé sans les postmessage, en donnant le pointeur de la liste au thread, et dans le code (très mauvais en multithread) :
int i=pList->InsertItem(pList->GetItemCount(), Ai);
pList->SetItemText(i,Bi);
ça fait toujours pareil (mais là c plutot normal vu que le code est crade)
J'ai l'impression que le probleme vient de la version du controle CListCtrl sur XP (tous les SP).
Si quelqu'un a deja rencontré le probleme ou qui pourrait m'aiguiller sur sa cause ça serait sympa.
J'ai pas plus d'infos au niveau du deboguage parceque j'ai 2000 et sous 2000 tout va bien.
Je pourrais donner du code qui reproduit le bug si quelqu'un peut deboguer sous xp.