Fenetre prioritaire

Signaler
Messages postés
2
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
27 avril 2009
-
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
-
Bonjour,

J'ai pas mal cherché mais n'ai pas trouvé ce que je cherchais, en espérant que ça existe... Pour résumer...

Alors j'ai créé une form (Form5) qui dispose d'une méthode (markImage(.....)). Ladite form5 est un arret d'urgence disposant d'un gros bouton STOP.
Je créé la forme de cette manière

Form5

 f =
new
Form5();

je l'affiche

f.Show();

puis j'appelle

marquage = f.markImage(spaceX, spaceY, nbPulsesPix,
this.image, chargementConfigInit,
this.squareDraw.Checked,
Convert.ToUInt16(
this.spotSize.Value));

Bref...
Or, dans cette méthode, j'ai une boucle qui bosse sur une DLL

markimage
{
   for(nianiania)
     {
            dll;
            dll;
             f.Refresh();
      }

}

Le problème c'est qu'à priori lorsque je rentre dans la boucle, je n'ai plus accès à ma fenetre, laquelle est bien affichée. Donc l'arret d'urgence ne marche pas, ce qui est par essence assez problématique, voire emmerdant !

Ma question est donc : est-il possible (sans que je me fasse ch*** avec des threads, je suis pas un bon codeur et ça me paraît assez compliqué !!) de faire en sorte que ma fenetre soit visible et active alors que ma boucle tourne ??? (laquelle envoie des infos à un périphérique) Les threads sont-ils obligatoires ? (dites-moi non svp!!!)

J'espère, malgré le fait que je n'ai pas voulu vous inonder de bouts de code (qui auraient certainement choqué les puristes...), avoir été assez clair !!! Puis, c'est plus d'une réponse de principe dont j'ai besoin qu'un bout de code !

Merci pour le coup de main !!!!!

Romain

3 réponses

Messages postés
276
Date d'inscription
lundi 8 septembre 2008
Statut
Membre
Dernière intervention
15 avril 2013
2
Bonjour,

Tu peux essayer :

for(nianiania)
     {
            dll;
            dll;
             f.Refresh();
            Application.DoEvents();
      }
Messages postés
2
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
27 avril 2009

Ce ne fonctionne pas... mais merci beaucoup de t'être penché sur le problème !!!
@+!
Romain
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
Salut,
Je te conseille dans ce cas de regarder du côté de la classe BackgroundWorker. Un des buts de cette classe est de cacher en quelques sortes l'utilisation des threads. Toute la logique est contenue dans cet objet, il faut juste se servir des méthodes qu'il met à dispotion.
http://msdn.microsoft.com/fr-fr/library/system.componentmodel.backgroundworker(VS.95).aspx.

<hr />
-Blog-
-Site Perso-