Class Evenement instancier

Résolu
cs_carvals Messages postés 50 Date d'inscription lundi 20 novembre 2000 Statut Membre Dernière intervention 23 janvier 2008 - 21 janv. 2008 à 20:31
cs_carvals Messages postés 50 Date d'inscription lundi 20 novembre 2000 Statut Membre Dernière intervention 23 janvier 2008 - 22 janv. 2008 à 22:42
Bonjour,

Question surement debile mais bon....

J'ai un lecteur connecter a de l'usb.
Une dll en csharp pour discuter avec
Un prog Vb.NET
Dans ce prog J'ai une classe qui controle le lecteur via la dll et dans laquelle j'ai un background worker qui tourne en permance. Lorsque le lecteur detecte quelque chose il excute les functions de ma classe et me renvoi un evenement dans un winform(s)..

je voudrais instancier ma classe pour toute l'appli une seule fois au demarrage afin que elle et ses evenements soient accessibles partout.... help.

J'ai essaye de l'instancier par un module ce qui marche pas trop mal mais je ne recupere pas les evenements... et si je mes dans mes winforms   public withevents blabla as new MaClasse() j'obtiens un pb d'instanciation...

please help!

merci d'avance

carvals

3 réponses

cs_carvals Messages postés 50 Date d'inscription lundi 20 novembre 2000 Statut Membre Dernière intervention 23 janvier 2008
22 janv. 2008 à 22:42
Apres quelques recherches voici la technique pour n'avoir qu'une instance de classe pour toute une appli...

Private

Shared FInstance
As Singleton=
Nothing

Sub
New()

End
Sub

Public
Shared
Function Instance()
As Singleton

' initialize if not already done

If FInstance
Is
Nothing
ThenFInstance =

New Singleton()

End
If

' return the initialized instance of the Singleton Class

Return FInstance

End
Function
'Instanceet pour instancier cette classe

dim NewInstance as Singleton = Singleton.Instance()

Ca regarde si une instance a deja ete creer et ca la recupere......

A+

carvals
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
21 janv. 2008 à 21:42
salut

en VB6 en tout cas on ne peut pas instancier une classe WITHEVENTS comme tu le fais :

public withevents blabla as <strike>new</strike> MaClasse<strike>()</strike>

et ensuite (dans le form_load très logiquement) tu instancies avec = new MaClasse
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
cs_carvals Messages postés 50 Date d'inscription lundi 20 novembre 2000 Statut Membre Dernière intervention 23 janvier 2008
22 janv. 2008 à 00:26
Salut,

Merci de ta reponse meme si elle ne m'a pas vraiment aidé.

Bon j'ai trouve la reponse.... en fait je fesais une instance de ma dll dans ma classe et donc avec le backgroundworker ma dll etait consomme et donc toute nouvelle instance de classe entrait en conflit. J'ai donc declare ma dll hors de ma classe dans un module initialiser au debut et c'est bon! J'ai juste a faire gaffe de ne pas lancer 2 fois le background worker!

merci pour ton aide!  A+

carvals
0
Rejoignez-nous