J'ai une requête SQL qui renvoie des centaines de lignes, et je dois les ajouter à un DataGrid WinForms d'une manière qui permette toujours à l'utilisateur d'afficher/faire défiler le DataGrid car les lignes sont ajoutée.Mise à jour de DataGrid dans BackgroundWorker Thread
Actuellement, j'utilise un thread BackgroundWorker pour exécuter l'instruction SQL et faire une boucle dans les lignes d'un DataReader, avant d'utiliser Control.BeginInvoke pour renvoyer chaque nouvelle ligne dans le thread d'interface utilisateur où il est ajouté au DataTable lié au DataGrid. Cela n'a pas vraiment l'effet désiré (il faut un peu de temps pour mettre à jour le DataGrid, puis après une mise à jour, l'interface utilisateur ne répond plus).
Existe-t-il un moyen de faire ce que je veux, et si oui, comment? Edit: J'ai ajouté un thread.sleep au thread de travail lors de la boucle dans le lecteur de données, ce qui empêche l'interface utilisateur de ne plus répondre après la première mise à jour, mais il n'est toujours pas aussi réactif que je le souhaite. (le défilement est un peu nerveux car l'ajout d'une ligne dans le fil de l'interface utilisateur semble voler la mise au point).
Je vais y jeter un coup d'oeil maintenant. Merci pour la réponse rapide :) –
Cela a fonctionné très bien, merci! –