Produit du jour : System Lifeguard à partir de 29.00 € (Logiciel)
07/09/2007 17:19 par mickeydisn | 4 réponse(s) | Signaler un contenu abusif ou erroné
Bonjour à tous. je vous sollicite pour un problème délicat.

Résumée :

Mon application est composer de 2 Thread:
- Le premier est une boucle while(true) { Th1::Action() } qui
exécute un ensemble de fonction ...
- Le second est une interface graphique winform qui doit me
permettre d'afficher ce qui ce passe dans la boucle de mon Th1.

Dans mon main cela ce passe ainci :
- Creation du Th2 dans un Singloton A:

A::Thread2_Start()
{
this->CreateControl();
_threadform = gcnew System::Threading::Thread(gcnew
System::Threading::ThreadStart(this, &A::ThrFunc2));
_threadform->Name = "Thread2";
_threadform->Start();
}

- Puis Exécution de la boucle While...


Afin de modifier l'affichage de la form depuis la boucle .. je fais
appel a des delegate que j'ai déclarés et instansiés dans le singloton
A.

ref class A : public System::Windows::Forms::Control
{
....

delegate void Delegate_add_err(String ^s);
Delegate_add_err ^D_add_err;
void MD_add_err(String ^s)
{
this->_form1->text_err->Text += s + Environment::NewLine;
}


void ThrFunc2()
{
...
this->D_add_err = gcnew Delegate_add_err(this, &A::MD_add_err);
...
}

}


Ensuite dans ma boucle j'utilise :
A::get_inst()->Invoke(A::get_inst()->D_add_err, "...");

Jusqu'ici pas de PB tout fonction comme je le souhaite .. Le pb
arrive ..

Je veut a partir de ma form interferer avec ma boucle ( changer des
valeur ... ) en gros executer une fonction sur le TH1.

j'ai donc cree des delegates dans mon singloton A et les instancier
dans avant de cree le theard 2

A::Thread2_Start()
{
this->D_th1_fonction = gcnew Delegate_th1_fonction(this,
&A::MD_th1_fonction);
....
_threadform->Start();
}


Le pb lors ce que je fais un Invoke depuis le Thread2 de ce delagate..
il reste bloqué sur le Invoke ..

Comment peux ton faire pour résoudre ce PB .. comment faire une
communication avec des delegate dans les 2 sens. surtout Th2 > Th1 .



Ps : Je m'excuse de ne pas être plus claire sur le code .. mais je
suis dans un programme de plus de 10000 ligne .. j'espère avec dégager
le plus clairement possible le PB.


Merci a ceux qui ce pencherons sur le Probleme.

--
MickeyDisn
 
Recherche de doc téléchargeable de ...
A propos des références de flux rss
 

 

Téléchargements

  • BitDefender Small Office Security
    BitDefender Small Office Security est une solution destinée à la protection des petites et moyennes entreprises face aux menaces du Web, que ce ...
  • VDownloader
    VDownloader est un outil qui permet de récupérer les vidéos des principales plates-formes en ligne telles que YouTube ou Dailymotion.
  • Comparer des nombres
    Comparer des nombres est un logiciel éducatif qui, comme son nom l'indique, permet d'entraîner l'enfant à la comparaison des nombres.
Tous les téléchargements