Savoir lorsque quelqu'un s'abonne à un évènement? [Résolu]

Messages postés
201
Date d'inscription
mercredi 8 février 2006
Dernière intervention
20 février 2007
- - Dernière réponse : cs_fcolo
Messages postés
201
Date d'inscription
mercredi 8 février 2006
Dernière intervention
20 février 2007
- 4 juil. 2006 à 15:37
Bonjour,

je réalise une application de capture de flux vidéo de caméra IP.

J'ai un processus de capture du flux qui envois au travers d'un evenement l'image courante capturée.

Je souhaiterai, lorsque personne n'est abonnée à cet évènement, ne pas capturer le flux (pour éviter une consommation du cpu et la bande passante du résaux inutile).

Existe-t-il une méthode pour lever un evenement ou autre lorsque quelqu'un s'abonne à un evenement particulier?
Je souhaiterai éviter une boucle sans fin qui teste l'état de l'abonnement ( while(abonement==null) Application.DoEvents()) et que le systeme soit assez réactif (ne pas faire un ticker qui teste l'état à intervale régulier).
Existe t il d'autre solution?

f.colo
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
129
Date d'inscription
mardi 22 novembre 2005
Dernière intervention
30 décembre 2007
7
3
Merci
Bonjour fcolo,

Tu peux surveiller les abonnements et désabonnements à un évènement en implémentant les méthodes add et remove de cet évènement, comme ceci :
<hr size="2" width="100%" />// Délégué privé
private MyEventHandler myEvent;

// Accès public au délégué, pour ajouter ou supprimer des abonnés
public event MyEventHandler MyEvent
{
    add
    {
       myEvent += value;
       // Quelqu'un vient de s'abonner
    }
    remove
    {
       myEvent -= value;
       // Quelqu'un vient de résilier son abonnement
    }
}
<hr size="2" width="100%" />Tu peux faire ce que tu veux dans le code de ces méthodes, comme déclencher un évènement, mettre à jour des variables, etc.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de dgouttegattat
Messages postés
427
Date d'inscription
mercredi 1 octobre 2003
Dernière intervention
29 janvier 2008
0
Merci
    ouhla ... j'ai l'impression que tu t'ai bien compliquer la vie!
A quel moment tu lances ta capture et à quel moment tu l'arrete ?
Commenter la réponse de bernie666
Messages postés
201
Date d'inscription
mercredi 8 février 2006
Dernière intervention
20 février 2007
1
0
Merci
[auteurdetail.aspx?ID=173141 bernie666]: plusieur module de mon application peuvent afficher la meme vidéo. Pour éviter de capturer plusieur fois la meme vidéo, les module s'abonne à l'evenement de réception d'une nouvelle image (flux MJPG). Donc je n'arrétais la capture qu'au moment de la fermeture de l'application, même si aucun module ne capturé souhaité voir la vidéo. D'où une consommation CPU et BP inutile.



[auteurdetail.aspx?ID=628847 dgouttegattat]: génial ce truc, c'est comme le get/set des variables, je ne connaissait pas du tout. Je pense que ca va bien me servir. Dans le add, si l'evenement est null je lance capture puis je m'abonne et dans le remove, je me desabonne et si l'evenement est null alors je stoppe la capture.

f.colo
Commenter la réponse de cs_fcolo

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.