Dans de nombreux endroits dans notre application, nous avons un code comme ceci:RAPI Approche: 1 instance statique pour l'application entière WinForms vs créer, connecter, disposer
using(RAPI rapi = new RAPI())
{
bool connected = TryToConnectWithTimeout(rapi);
if(connected)
DoSomethingWithRapi(rapi);
}
Cela a bien fonctionné jusqu'à présent. Nous n'avons jamais plus d'une instance rapi à la fois. Jusqu'à maintenant:
Mais maintenant nous voulons écouter l'événement connect sur rapi. Nous faisons comme ceci:
assez bienvoid StartMonitoringRapiConnection()
{
_rapi = new RAPI();
_rapi.RAPIConnected += new RAPIConnectedHandler(_rapi_RAPIConnected);
_rapi.RAPIDisconnected += new RAPIConnectedHandler(_rapi_RAPIDisconnected);
_rapi.Connect(false,-1);
}
private void _rapi_RAPIConnected()
{
DoWorkWhenRapiConnects();
}
private void _rapi_RAPIDisconnected()
{
//Listen for the next time that rapi connects
_rapi.Connect(false,-1);
DoWorkWhenRapiDisconnects();
}
« StartMonitoringRapiConnection » fonctionne aussi longtemps que je ne commence à nouveau et connecter d'autres objets RAPI. Mais une fois que je commence à créer de nouveaux objets RAPI, les événements connect/disconnect semblent être hors service.
Cela fonctionnerait-il mieux d'avoir seulement 1 instance statique de RAPI pour l'application entière? Avez-vous d'autres conseils? Merci.
Merci Chris. Puisque l'objet RAPI était iDisposable, nous avons peut-être essayé le paradigme using. merci de mettre les choses en perspective. –