Comment puis-je changer la CurrentCulture de l'ensemble du processus (et pas seulement thread en cours).Net?
J'ai une situation où je dois mettre mon processus de la locale fr-fr.
Je sais comment faire pour le thread courant:
System.Threading.Thread.CurrentThread.CurrentCulture =
System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
Mais mon application utilise BackgroundWorkers
effectuer un traitement, et les paramètres régionaux pour ces threads de travail ne semble pas être affectée par le changement ci-dessus pour leur ponte principale-fil.
Alors, comment puis-je définir les paramètres régionaux pour tous les threads dans mon application sans paramètre dans chacun manuellement?
OriginalL'auteur Assaf Lavie | 2009-09-22
Vous devez vous connecter pour publier un commentaire.
Vous devrez modifier les paramètres régionaux du système si vous voulez le faire. Pour quelle raison voulez-vous BackgroundWorkers à exécuter en fr-US?
Vous devriez avoir votre couche de gestion de l'exécution dans un invariant de la culture, et n'ont qu'une culture propre à la fin de l'utilisateur de l'INTERFACE utilisateur.
Si vous utilisez le BackgroundWorker composant, et ont pour ce faire, vous pouvez essayer quelque chose comme cela dans la DoWork méthode:
BackgroundWorker
composant sur unForm
par exemple)Oui (surtout si c'est l'arrière-plan Travailleur), mais vous n'avez pas de mise à jour de l'INTERFACE utilisateur sur le fond thread de travail. Au moins vous n'avez pas si vous l'utilisez correctement.
L'arrière-plan travailleur est double.Parse(string) sur certaines entrées, qui rompt pour certains paramètres régionaux qui ont bizarre, point décimal représentations. Donc, j'ai encore besoin de savoir comment définir les paramètres régionaux de l'ensemble du processus. Vous dites que ce n'est pas possible?
Assaf - pouvez-vous poster un exemple de code. Aucun de mes suggestions pour vous?
J'ai fini par hériter de BW et le réglage de la CurrentCulture avant chaque fonction de thread...
OriginalL'auteur RichardOD
Avec la version 4.0, vous devez gérer vous-même par la définition de la culture pour chaque thread. Mais avec 4.5, vous pouvez définir une culture pour le domaine d'application et qui est la meilleure façon de gérer cela. Pertinentes de l'api sont CultureInfo.DefaultThreadCurrentCulture et CultureInfo.DefaultThreadCurrentUICulture.
OriginalL'auteur Eric MSFT
Utiliser ceci:
après à faire un travail de faire cela:
Spanish - Spain
deSpanish - Spain
, par exemple, où0x0C0A
utilise international, l'ordre de tri et0x040A
les utilisations traditionnelles de l'ordre de tri. REF: Classe CultureInfoOriginalL'auteur Paolo30Rose
Nous utilisons la classe helper pour BackgroudWorker comme ceci:
Exemple d'utilisation:
OriginalL'auteur Ondřej Vykouk