Delegate asynchrone - Mise à jour progress bar

Le
teetof
Bonjour je découvre depuis peu l'interet des delegates et leur
fontctionnement en asynchrone
En résumé : j'ai une solution sous VS2008 avec 2 projets
distincts ; un projet gérant l'UI et l'autre la couche DAL .
Dans UI jai une form et sur cette derniere lorsque l'utilisateur
clique sur un bouton, il déclenche une succession de scripts SQL
(stockés dans un fichier) . Je laisse gérer l'execution de ces scripts
par la DAL (qui ne reférence pas du tout mon projet UI). Schéma :

UI
onclick : ExecuteTraitementBDD () --> le traitement peut
etre long

DAL:
ExecuteTraitementBDD :
traitement 1
traitement 2
et..(la boucle sur les scripts..)
pour chaque scriptsql faire :
ExecSQL(scripti)
FinExecuteTraitementBDD

Je souhaiterai que dans ma form UI ,faire progresser ma "progressbar"
aprés chaque ExecSQL(script). J'ai donc commencé à coder un délég=

coté UI en asynchrone (avec une fonction de callback qui mettait à
jour ma progress bar). Le délégué déclenchait donc
ExecuteTraitementBDD. Mais cela ne fonctionne pas puisque le callback
est uniquement appelé à la fin de ExecuteTraitementBDD (ce qui est
logique).
- Comment faire pour maj ma progressbar à chaque itération de la
boucle , à l'interieur de ExecuteTraitementBDD ?
Je précise que je ne peux bien sur pas "déporter" tout le code de
ExecuteTraitement dans l'UI pour déclencher le délégué uniquement s=
ur
ExecSQL (vous me suivez ?) car traitement1 et traitement2 font
aussi appel à d'autre code de la DAL.
Bref ..je tourne un peu en rond.
Si qqun peu m'aiguiller j'en serai reconnaissant

Merci
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jérémy Jeanson
Le #19200711
Bonjour Teetof,

Je pense que le BackGroundWorker peut être très pratique dans ton cas.
Voici le lien vers la doc :
http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker_methods.aspx

Tu pourrais très bien envisager de la passer comme argument de ta
méthode d'appel de ta DAL et le piloter via celle-ci. Le
BackGroundWorker étant très facile à mettre en place je pense que tu y
gagneras pas mal de temps et ceux sans alourdir ta couche d'accès au
données.
--
Jérémy JEANSON
MCP
http://www.jjeanson.fr
teetof
Le #19209051
On 27 avr, 08:21, Jérémy Jeanson
Bonjour Teetof,

Je pense que le BackGroundWorker peut être très pratique dans ton cas .
Voici le lien vers la doc :http://msdn.microsoft.com/en-us/library/system .componentmodel.backgro...

Tu pourrais très bien envisager de la passer comme argument de ta
méthode d'appel de taDALet le piloter via celle-ci. Le
BackGroundWorker étant très facile à mettre en place je pense que t u y
gagneras pas mal de temps et ceux sans alourdir ta couche d'accès au
données.
--
Jérémy JEANSON
MCPhttp://www.jjeanson.fr



Bonjour ,
merçi bcp pour cet "aiguillage", je ne connaissais pas cette classe
trés pratique !
J'ai résolu mon soucis.
Encore une fois, avant de coder, bien regarder dans le framework ;)
Cdt;
Richard Clark
Le #19215701
Je te conseille de jeter un coup d'oeil sur les webcasts d'Eric Vernier. Le
backgroundworker est expliqué mais aussi plein d'autres choses tres
intéressantes :
http://msdn.microsoft.com/fr-fr/vcsharp/dd582579.aspx

Richard Clark
http://www.c2i.fr
Le 1er site .NET Francophone

news:
On 27 avr, 08:21, Jérémy Jeanson
Bonjour Teetof,

Je pense que le BackGroundWorker peut être très pratique dans ton cas.
Voici le lien vers la doc
:http://msdn.microsoft.com/en-us/library/system.componentmodel.backgro...

Tu pourrais très bien envisager de la passer comme argument de ta
méthode d'appel de taDALet le piloter via celle-ci. Le
BackGroundWorker étant très facile à mettre en place je pense que tu y
gagneras pas mal de temps et ceux sans alourdir ta couche d'accès au
données.
--
Jérémy JEANSON
MCPhttp://www.jjeanson.fr



Bonjour ,
merçi bcp pour cet "aiguillage", je ne connaissais pas cette classe
trés pratique !
J'ai résolu mon soucis.
Encore une fois, avant de coder, bien regarder dans le framework ;)
Cdt;
Publicité
Poster une réponse
Anonyme