* Note: reformuler ma question en fonction des commentaires de l'utilisateur.Besoin d'aide sur Backgroundworker
Besoin d'aide sur l'utilisation du thread Backgroundworker de .Net dans le but suivant d'augmenter la réactivité et les performances de l'interface utilisateur dans mon application Winforms .Net. Lorsque l'utilisateur clique sur le bouton « Calculer » sous forme d'interface utilisateur, je fais ceci:
1.Get une liste des catégories C de base de données [ceci est généralement autour de 10]
2.Pour chaque catégorie C, procédez comme suit:
a.Appelez une bibliothèque tierce, effectuez un traitement et calculez le prix de la catégorie.
b.Reconnaître une liste de produits [C'est typiquement autour de 800].
c.Pour chaque produit, calculez son prix en utilisant son prix de catégorie ci-dessus. D.Mettre à jour ce prix de chaque produit dans la base de données en utilisant un proc stocké. 3.Mettez à jour la progression [ou signalez un message d'erreur] à un formulaire dans l'interface utilisateur.
Pour info, je veux utiliser Backgroundworker pour les étapes #c et #d ci-dessus.
J'ai essayé d'utiliser Backgroundworker dans ma méthode. J'ai placé les appels à InitializeBackgroundworker() et RunWorkerAsync() dans la boucle la plus externe [ie. étape 2]. Mais on dirait, Backgroundworker est invoqué seulement pour la première catégorie. Qu'est-ce que je manque ici? Donc, ma question est, où puis-je appeler InitializeBackgroundworker() et RunWorkerAsync()? Et comment puis-je m'assurer que ces 2 méthodes sont appelées pour chaque catégorie?
Merci d'avoir lu.
Je peux penser à plusieurs endroits à regarder - pouvez-vous poster le code de la boucle principale? – egrunin