Bonjour à tous,

Dans une petite application j’utilise une Base de données SQL Server 2000 chargée en mémoire dans un DataSet. Après le démarrage, pour gagner du temps, je récupère les données d’une table grâce à un tableAdapter.Fill(dataset.MaTable) dans un BackgroundWorker : c'est-à-dire dans un autre thread.

Le problème est que j’ai une exception déclenché à ce niveau là. Cela ne survient que si la sélection (faite par le Fill) contient beaucoup d’enregistrement (plus de 1000).

Voici l’exception :

La collection a été modifiée ; l'opération d'énumération risque de ne pas s'exécuter.
(Collection was modified; enumeration operation might not execute.)
Je ne comprends pas pourquoi cela plante ici, par plusieurs reprises j’ai utilisé cette méthode sans plantage !
J’ai lu en cherchant sur google que l’une des causes probable de cette erreur est que la « collection » (ma datatable) serait modifiée par un autre thread (le thread principal ?)

Mais bien qu’ayant mis des points d’arrêt partout, je ne vois pas ce qui pourrait modifier ma datatable ! Comment faire pour « espioner » la modification de la collection par un autre thread ?

Si quelqu'un à une idée sur le problème, je l'en remercie !