IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Méthode Play() non bloquante


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 126
    Par défaut Méthode Play() non bloquante
    Bonjour, je suis entrain de faire un lecteur de note dans le but de faire un lecteur de tablature. Le probleme c'est que quand j'appuis sur play, il me joue les notes mais cette opération est bloquante et je n'ai pas la possibilité d'appuyer sur stop en cours de morceau. Donc j'aimerais pouvoir appuyer sur Play() et puis sur Stop() si j'en ai envie. J'ai essayer avec les threads mais ca fonctionne toujours pas.

    Quelqun pourrais m'aider?

    Merci d'avance

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    beh, les Thread, c'est fait pour réaliser ce que tu souhaites faire

    Si ça ne marche pas, c'est que tu t'y prends mal (désolé d'être aussi catégorique), mais je me dois de te dire que ce genre d'action, faite par un Thread fonctionne très bien...

    donc, sans en savoir plus, ou sans voir de code, il me semble qu'on aura du mal à t'aider d'avantage !!!

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 126
    Par défaut
    Voici l'extrait du code. j'ai lu qu'il fallait utiliser la méthode Invoke pour pouvoir modifier la listbox. mais pour les threads je ne sais pas ce que je dois faire de plus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    public partial class MIDITest : Form
        {
            OutputDevice outStream;
            ChannelMessageBuilder builder;
            ChannelMessage on;
            ChannelMessage off;
            List<Notes> notes;
            Thread threadPlay;
            private delegate void ChangeListBox();
     
     
            public MIDITest()
            {
                InitializeComponent();
                threadPlay = new Thread(new ThreadStart(threadPlayMethod));
                [...]
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
                threadPlay.Start();
            }
     
            private void threadPlayMethod()
            {
                this.Invoke(new ChangeListBox(PlayMethod));
            }
     
            private void PlayMethod()
            {
                int i = 0;
                foreach (Notes n in notes)
                {
                    listBox1.SelectedIndex = i;
                    i++;
                    n.Play(outStream, Convert.ToInt32(NUDtempo.Value));
                }
                listBox1.SelectedIndex = -1;
            }

Discussions similaires

  1. Réponses: 5
    Dernier message: 02/09/2005, 12h47
  2. Rendre la lecture non bloquante
    Par Charlinecha dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 05/07/2005, 15h46
  3. [EJB] [JSP] Méthode EJB non reconnue dans jsp
    Par stago dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 06/07/2004, 09h52
  4. Réponses: 3
    Dernier message: 16/03/2004, 16h42
  5. [API] Communication série NON-bloquante : OVERLAPPED/Thread
    Par Rodrigue dans le forum C++Builder
    Réponses: 2
    Dernier message: 07/11/2003, 13h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo