Mes commentaires ont assez long, donc je décidé d'en faire un poste distinct.
Tout d'abord, +1 pour Fredrik Mörk, en utilisant VirtualMode
est le chemin à parcourir. Cependant, vous perdez certaines fonctionnalités, par ex. colonne autosize, et le tri est plus facile à gérer vous-même.
Si c'est un problème, le remplissage d'un thread de travail peut sembler tentant. Cependant, la population aura toujours lieu dans le thread qui possède le contrôle de liste (c'est-à-dire pratiquement toujours le thread principal) .NET rend cela visible en vous forçant à utiliser (Begin)Invoke
. De plus, les changements de contexte augmenteront considérablement le temps total nécessaire pour remplir tous les éléments si vous les remplissez un par un, de sorte que vous voulez remplir des morceaux (disons 50 éléments à la fois, ou mieux remplir autant que possible dans 20 millisecondes). Ajoutez à cela la synchronisation supplémentaire requise lorsque le contenu change, vous avez une solution assez complexe pour un résultat pas si stellaire.
Winforms ou WPF? –