begin process at 2010 02 10 05:23:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Multimédia

 > 

Autre

 > 

evenements et thread en C#


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

evenements et thread en C#

mercredi 6 décembre 2006 à 11:15:58 | evenements et thread en C#

CaMeGave

Bonjour,

je veux réaliser un programme en C# qui gère le déclenchement d'une prise de vue d'une caméra par un bouton externe.

pour cela je dois gérer des evenements.

je commence par créer mes evenements :
// Création de l'evenement
eventTrigger = CreateEvent(IntPtr.Zero, false,false,null); // evenement sur le déclenchement de la prise de vue
eventFrame = CreateEvent(IntPtr.Zero, false,false,null); // evenement sur la disponibilité d'une image

j'initialise les evenements avec les fonctions de ma caméra :
int res = m_uEye.InitEvent(eventFrame.ToInt32(), uEye.IS_SET_EVENT_FRAME);
res = m_uEye.InitEvent(eventTrigger.ToInt32(), uEye.IS_SET_EVENT_EXTTRIG);



je lance un thread qui va attendre un des evenements.
threadTrigger = new Thread(new ThreadStart(ThreadTriggerFunction));
// Démarrage du thread pour le trigger
threadTrigger.Start();


ensuite ma fonction du thread est la suivante :
private void ThreadTriggerFunction()
{
if (!threadTrigger.IsAlive)
       return;

// Create an AutoResetEvent object to wrap the handle we got from OpenEvent
AutoResetEvent arEventFrame = new AutoResetEvent(false);
AutoResetEvent arEventTrigger = new AutoResetEvent(false);

arEventFrame.Handle = eventFrame;    // Set the Handle to the event from
arEventTrigger.Handle = eventTrigger;    // Set the Handle to the event from

WaitHandle[] waitHandles;

waitHandles = new WaitHandle[2];

//Put it in our array for WaitAny()
waitHandles[0] = arEventFrame;
waitHandles[1] = arEventTrigger;

// Tant que la caméra est branché
while (threadTrigger.IsAlive)
{
// On declenche la capture
if (lanceCapture)
{
// attente de l'evenement du trigger
int waitResult = WaitHandle.WaitAny(waitHandles, nTimeOut, false);

// traitement de l'evenement
// For timeout, just loop and wait again
if (waitResult == WaitHandle.WaitTimeout)
{
Console.WriteLine(" WaitAny timed out.");
}
 else if (waitResult == 0)
{
Console.WriteLine("0 == waitResult.  Yippee !!!");
// Do Something
}
else if (waitResult == 1)
{
Console.WriteLine("1 == waitResult !!!");
// Do Something Else
}
// On a capture l'image ou le temps d'attente est dépassé
lanceCapture = false;
} // Fin if (lanceCapture)
else
{
Thread.Sleep(100);
}
}
}

mon souci est que la fonction WaitHandle.WaitAny me renvoie toujours le fait qu'il n'y a pas eu d'evenement. donc je ne comprends pas ou je me trompe car j'ai repris ce fonctionnement sur un programme C++ qui marche très bien.

Si vous avez la moindre idée du problème ou que vous voulez plus d'explication je pense que je suis sur ce problème encore un petit moment donc n'hésiter pas à me contacter.

merci d'avance.
mercredi 13 décembre 2006 à 23:52:08 | Re : evenements et thread en C#

ShareVB

salut, la propriété Handle est remplacée par SafeWaitHandle...sinon pourquoi ne pas créer directement les AutoResetEvent et passer le contenu de la propriété Handle ou SafeWaitHandle à m_eyes.InitEvent ShareVB


Cette discussion est classée dans : evenements, thread, false, evenement, waitresult


Répondre à ce message

Sujets en rapport avec ce message

Form1 et Form2 [ par emmanuel9 ] Bonjour à tous, J'ai deux Forms : form1 et form2 Dans form1 sur l'evenement d'un bouton je fais : this.visible = false ; Form2 a = new Form2() ; Thread et winform (encore ...) [ par Miltiades ] Bon voila, ca faisait longtemp, tres longtemp... que je n'avais pas posté, mais j'ai un probleme avec des threadsj'ai un objet metier qui a un traitem evenement click [ par hred1 ] Bonjour, Je cherche à commander deux évenment par le même bouton. Comment dois-je faire private bool Etat = false; private void btn_click(.......... thread et evenement [ par yanis7518 ] salut a tousvoila je construit une IHM. je souhaiterai créer un thread qui serait dans l'attente qu'un evenement se produise.je sais pas si je suis tr Evenements .net [ par byphantom ] Salut tout le monde, J'ai une question sur les evenements en .net Est ce qu'il est utile de se désabonner d'un evenement avant de se reabonner dessus? Evenements d'un COM en C# [ par sebyx31 ] Bonjour,Je suis actuellement en train de faire une télécommande pour iTunes grâce au SDK mis à disposition par Apple.Le problème est que je ne sais pa PropertyGrid et evenements [ par romagny13 ] Bonjourvoila je cherche a savoir comment faire pour recuperer des quune valeur ds un Controler un thread en ne connaissant que son nom [ par fcolo ] Bonjour,je réalise une application (pour le fun) qui lance 100 thread en parallele.Chaque thread devra exécuter le même code.Dans ce code, je veux lan Focus sur un Formulaire créé dans un Thread [ par AlexBob789 ] <TD id=HB_Focus_Element vAlign=top width="100%" background="" height=250 UNSELECTAB heritage - evenement... [ par Arthenius ] Salut a tousvoila je seche...alors je vous explique le contexte.on a developper une fenetre de facture avec des recherches sur articles clients etc...


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales