Csharp, dotnet...

progressbar, statusbar, invoke, invokerequired

private void btOk_Click(object sender, System.EventArgs e)

{

    // OK on demarre la statusbar

    // dans le thread de l’IHM

    statusBar.Start();

 

   (......)

                       

   // OK creation d'un thread

ThreadPool.QueueUserWorkItem(new WaitCallback(threaded_btOk_Click), infos);

 

}

           

private void threaded_btOk_Click(object state)

{

  // OK recupération des parametres

  maClasse infos = (maClasse)state;

  // on fait ici tous les traitements que l’on veut dans le thread

  // sauf ceux qui touche a l’IHM (pas possible de modifier une IHM en dehors de son thread principal)

 (...)

                 

  // les modifications de l’IHM sont faites dans une autre méthode

  callback_btOk_Click(reponse);

}

           

private void callback_btOk_Click(object returnValue)

{

  // Au premier appel on vient du second thread

  // L’invoke permet d’executer cette méthode dans le thread de l’IHM et donc on peut modifier l’IHM

 

  if (InvokeRequired)

  {

     Invoke(new WaitCallback(callback_btOk_Click), new object[]{returnValue});

     return;

  }

             

  (.....)

                 

  //On peut arreter la status bar qui a été démarrée dans le thread principal...

  statusBar.Stop(); 

}

 

15:59 - 16/04/2008 - poster commentaire

Page Précédente Page Suivante
Description
Quelques notes sur csharp et dotnet

«  10 2008  »
LunMarMerJeuVenSamDim
 12345
6789101112
13141516171819
20212223242526
2728293031 

Accueil
Archives
Amis

Articles Recents
- System.Diagnostics simple ou pour les nuls, exemple
- Faire des mutex en CSharp
- progressbar, statusbar, invoke, invokerequired
- dot.net csharp profiler profile
- Log4net : traces applicatives dans dotnet : mise en place rapide et sale

Amis
- ben
- Christelle
- bartheju
- REBRAB
- BizigDu