У меня есть приложение, написанное на C #, которое не имеет GUI или UI, но вместо этого записывает файлы, которые анализируются другим приложением (в XML и других).
У меня есть клиент, у которого CultureInfo имеет NumberDecimalSeparator, установленный на запятую, что приводит к ошибкам синтаксического анализа с числами с плавающей запятой (PI будет иметь значение 3,1415 ).
Я бы хотел установить глобальный параметр CultureInfo в приложении для всех потоков. Я пробовал:
- (очевидно) обычный подход установки CurrentThread.CurrentCulture в качестве первой строки в Main () , но, похоже, он сбрасывается.
- Вариация / расширение на http://www.codeproject.com/KB/cs/Change_App_Culture.aspx
- Сделайте то же самое (# 1) для явно созданных потоков в приложении.
И переход на использование явного форматирования не возможен (150K + строк, большинство написано бывшими сотрудниками).
[Изменить]
Приложение привязывается к сокету и обрабатывает запросы от выделенных клиентов. В зависимости от типа запроса он порождает разные классы обработчиков.
Извините, когда я впервые опубликовал сообщение, я должен был уточнить в # 1, что ( я, хотя ) я сделал это во всех обработчиках, которые также были явно созданы.
Оказывается, я пропустил поток / обработчик, который вызывал проблему. Итак, приложение теперь работает правильно, но остается вопрос, можно ли установить культуру во всех потоках.
Если бы он мог перебирать все потоки, это тоже решило бы проблему. Итак:
Как я могу получить все Thread объектов (не ProcessThread ) в текущем процессе?