Merci pour votre réponse olibara ça m'encourage fortement…
En faite, la lecture du fichier est ligne par ligne, puis je splitte le fichier selon le séparateur ‘\t’.
On isolant la lecture du fichier et le split, ça prend 52s tant-dis que tous le traitement dure 3min !
Le traitement est une vérification des valeurs de ligne et il est comme suite :
–Charger un config à partir d’une base de données dans des structures déjà réalisées(Existant) (source du problème !).
–Lecture du fichier ligne par ligne et pour chaque ligne lu, le splitter puis vérifier les valeurs qu’il contient en les comparant avec ceux du config ; recherche puis comparaison.
–Si erreur de comparaison, on sauvegarde la valeur erroné dans une liste et on continue le traitement.
–A la fin du traitement, toutes les valeurs erronées, si existe, sont écrites dans un fichier.
Mais en vérifiant les structures utilisées, j’ai réalisé que la recherche prend un temps considérable, alors j’ai remplacé la structure utilisé par un dictionnaire(Dictionary<string, string>) dont le Key est le code de la config (base de données) et je cherche simplement avec car la valeur lit à partir du fichier n'est qu'un code de la config.
Le traitement s’est réduit maintenant un peut prés à 1min et un peut plus que 30s si le fichier ne contient pas des valeurs erronées et entre 2 à 3min selon le nombre des erreurs qu'il contient mais c’est toujours long…
Et si toutes les valeurs du fichier sont erroné, Benh là, c'est la catastrophe, plus de 30min, mais ce cas n'arrivera jamais car le taux d'erreur permis sur le fichier CSV est une pour chaque 100000 valeurs c'est à dire 160 erreur pour un fichier de 16 millions de ligne.
Si une structure plus rapide existe et qui stabilise le traitement à 1min et pas plus de 1min et 30s je serai vraiment ravis de la connaitre. 
Merci à vous tous.
Partager