Pages

[Débutant] Assigner le travail d'un BackgroundWorker dynamiquement dans une classe. sujet

samedi 1 février 2014




Bonjour a tous,
Dans mon précédent Post je souhaitais réaliser une classe de TraitementVideo, je me rends compte que la gestion des objets Process ne suffit pas, je dois étendre les possibilités pour pouvoir exécuter du code a l'aide de BackGroundWorker(s).
Ma classe va donc devenir un véritable gestionnaire de taches qui va devoir mêler l’exécution des Objets Process et des BackGroundWorkers.
Bien que celle-ci fonctionnera principalement de façon synchrone (exécution des taches les unes a la suite des autres) je me donne la possibilité de pouvoir aussi les exécuter de façon asynchrone a l'aide d'une variable boolean "SyncMode" qui définira le mode d’exécution de chaque tache.
Pour le cas qui m'interesse ici (les BackGroundWorker) je ne sais pas trop comment associer ce (ou ces) BackGroundWorker aux procédures SubTraitement1 ,2 ou 3 sans entraîner un forte dépendance (en faisant référence aux procédures) entre mon code principale et ma classe :

Pour informations je pense que je vais instancier un ou plusieurs BackgroundWorker en fonction des taches a exécuter et qui se partagent la même procédure DoWork comme dans l'exemple suivant (Je ne vois pas comment c'est possible autrement). Ceux-ci se trouvant dans ma classe et les procédures Traitement1, 2 et 3 se trouvant dans mon code principale.


Code:


Dim Task as string = "Traitement1"
Private Sub Bgw_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs)
If Task = "Traitement1" then
Call SubTraitement1
ElseIf Task = "Traitement2" then
Call SubTraitement2
....
End If
End Sub



Cela n'a peut-être rien avoir mais j'ai pensé aux délégués (que je n'ai encore jamais utilisés), pensez vous que cela peut être une solution a mon problème et comment cela s’implémente ?

Merci beaucoup pour votre aide.




Aucun commentaire:

Enregistrer un commentaire