CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C#] Savoir si une méthode s'éxécute

Anno2070
Anno2070
Niveau 10
21 juillet 2012 à 16:55:15

Bonjour,

Je suis en train de développer une application, et dans celle-ci je dispose d'une classe qui génère plusieurs évènements.
Le problème c'est que pour générer les évènements, j'utilise un Thread qui boucle tout le temps et qui lance les évènements quand il le faut.

Le problème, c'est que le code contenu dans les méthodes événementielles est bien plus long que la boucle du Thread qui s'occupe de les générer, ce qui fait que mon application me génère plusieurs fois l’évènement, alors qu'une seule fois me suffirait.

Je cherche donc à savoir, comment faire pour savoir si une méthode appelée "X" est en cours d’exécution, et auquel cas, ne pas générer l’éventement quand sa méthode correspondante est toujours en train d'être exécutée.

Merci ! :-)

Nightmarez
Nightmarez
Niveau 9
21 juillet 2012 à 16:56:17

Hmmm, tu peux faire un console.writeline() (si mes souvenirs sont bon) et tu mets le texte que tu veux au debut de ta methode pour voir si elle a ete lancee.

Anno2070
Anno2070
Niveau 10
21 juillet 2012 à 17:12:42

J'avais pensé à cette solution, mais l'idéale serait de ne pas à "lier" la méthode de l'évènement avec le Thread appelant, pour une parfaite transparence niveau utilisation.

041
041
Niveau 10
21 juillet 2012 à 17:22:56

C'est ça que tu cherches je pense:
http://stackoverflow.com/questions/541194/c-sharp-version-of-javas-synchronized-keyword

Anno2070
Anno2070
Niveau 10
21 juillet 2012 à 17:34:43

Merci 041, ça pourrait coller.
Je regarde un peu ce que ça peut donner.

tbop2
tbop2
Niveau 10
21 juillet 2012 à 18:42:07

On peut voir la boucle événementielle au juste ? Je suis pas sûr de comprendre pourquoi tu génères des événements plusieurs fois et surtout quelle est l'origine de ces dits événements.

godrik
godrik
Niveau 30
21 juillet 2012 à 19:08:41

dans les modules d'interface graphique il y a souvent une phase de compactage des message pour eviter ce genre de truc.

Anno2070
Anno2070
Niveau 10
21 juillet 2012 à 22:50:39

tbop2 :d) C'est pour mon boulot, et je n'ai pas l'autorisation de divulguer le code en question.
Mais, ce n'est pas moi justement qui génère l'événement plusieurs fois, c'est justement ce que je cherche à éviter.

Toutefois, j'ai résolu mon problème, au lieu d'appeler un thread différent pour chaque événement (ce qui permettait de gérer plusieurs événements en même temps), je me suis contenté de les exécuter tous sur le même, il me reste plus qu'à réduire le temps de traitement et c'est parfait.

Merci ! :-)

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment