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

cs_fcolo 201 Messages postés mercredi 8 février 2006Date d'inscription 20 février 2007 Dernière intervention - 4 juil. 2006 à 14:59 - Dernière réponse : cs_fcolo 201 Messages postés mercredi 8 février 2006Date d'inscription 20 février 2007 Dernière intervention
- 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
dgouttegattat 129 Messages postés mardi 22 novembre 2005Date d'inscription 30 décembre 2007 Dernière intervention - 4 juil. 2006 à 15:26
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.

Merci dgouttegattat 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

Commenter la réponse de dgouttegattat
bernie666 427 Messages postés mercredi 1 octobre 2003Date d'inscription 29 janvier 2008 Dernière intervention - 4 juil. 2006 à 15:14
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
cs_fcolo 201 Messages postés mercredi 8 février 2006Date d'inscription 20 février 2007 Dernière intervention - 4 juil. 2006 à 15:37
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.