Thread.CurrentCulture 影响 数字、符号、货币、日期等的格式化形式

Thread.CurrentUICulture 影响线程ResourceManager使用的资源类型

CultureInfo.UseUserOverride属性指示是否使用用户在控制面板自定义的 数字、符号、日期、货币等的格式,可以通过CultureInfo构造函数设置

新开一个新线程,默认的CurrentCulture为系统的Culture,如果要改变当前线程的Culture,需要在线程中修改 Thread.CurrentCulture值来实现,但是如果很多个线程都要一个个去改,那就呵呵了,还有那些可能不受我们控制的线程,如何去设置他们的Culture?

如果使用的.net环境是4.5及以上版本,CultureInfo提供了两个静态属性DefaultThreadCulture和DefaultThreadUICulture,一处修改即可实现所有的未显式设置Thread.CurrentCulture的线程都使用这个Default值。

如果是小于4.5的.net,可以通过反射来实现,因为CultureInfo类有两个私有的静态字段(在4.0中是s_userDefaultCulture,s_userDefaultUICulture;在更低的版本中是m_userDefaultCulture,m_userDefaultUICulture)

示例代码:

static void SetDefaultCulture(CultureInfo culture){Type type = typeof(CultureInfo);try{type.InvokeMember("s_userDefaultCulture",BindingFlags.SetField | BindingFlags.NonPublic | BindingFlags.Static,null,culture,new object[] { culture });type.InvokeMember("s_userDefaultUICulture",BindingFlags.SetField | BindingFlags.NonPublic | BindingFlags.Static,null,culture,new object[] { culture });}catch { }try{type.InvokeMember("m_userDefaultCulture",BindingFlags.SetField | BindingFlags.NonPublic | BindingFlags.Static,null,culture,new object[] { culture });type.InvokeMember("m_userDefaultUICulture",BindingFlags.SetField | BindingFlags.NonPublic | BindingFlags.Static,null,culture,new object[] { culture });}catch { }}

扩展阅读:

SETTING DEFAULT CURRENTCULTURE IN ALL VERSIONS OF .NET
根据 Windows 区域设置生成区域性
.NET Framework 中的格式化类型
在 .NET Framework 中分析字符串

C# 设置线程的默认CultureInfo相关推荐

  1. 【Linux 内核】线程调度示例一 ③ ( 获取线程优先级 | 设置线程调度策略 | 代码示例 )

    文章目录 一.获取线程优先级 1.pthread_attr_setschedparam 和 pthread_attr_getschedparam 函数 2.获取线程优先级代码示例 二.设置线程调度策略 ...

  2. android线程栈默认大小,线程的默认最大堆栈大小 - Internet Information Services | Microsoft Docs...

    在本机 IIS 进程中创建线程的默认最大堆栈大小为 256 KB 12/29/2020 本文内容 本文介绍由本机 IIS 进程创建的线程的默认最大堆栈Microsoft Internet Inform ...

  3. 从原理上搞懂如何设置线程池参数大小?

    我们在使用线程池的时候,会有两个疑问点: 线程池的线程数量设置过多会导致线程竞争激烈 如果线程数量设置过少的话,还会导致系统无法充分利用计算机资源 那么如何设置才不会影响系统性能呢? 其实线程池的设置 ...

  4. 线程池默认多少个线程_我需要多少个线程?

    线程池默认多少个线程 这取决于您的应用程序. 但是,对于那些希望对如何从生产站点购买的所有昂贵内核中挤出大量资金的人,请多多包涵,我将阐明围绕多线程 Java应用程序的奥秘. 内容针对最典型的Java ...

  5. Linux-pthread如何设置线程的优先级

    设置线程优先级的函数: int pthread_setschedparam(pthread_t target_thread, int policy, const struct sched_param ...

  6. java里新建线程设置线程名字_多线程开发不得不掌握,设置和获取线程名称及JVM如何运行的...

    原标题:多线程开发不得不掌握,设置和获取线程名称及JVM如何运行的 欲善编程,多看.多敲.多讨论:动眼.动手.动大脑. 1 如何设置和获取线程名称 多线程的运行状态是不确定的,在程序开发过程中,想要获 ...

  7. rabbitMq设置多线程并设置线程池消费处理

    第一步,先写配置 @Configuration public class RabbitmqConfig {@Bean("batchQueueRabbitListenerContainerFa ...

  8. jmeter关于设置线程组与时间的问题

    1.线程组-调度器-运行时间(右上角) A:线程数:设置线程组的执行次数.例如(1个线程组(里面包含9个请求),设置线程数为10,则执行10个线程(共执行90个请求):多个线程组,则每个线程组按照单个 ...

  9. 【多线程】线程的引入,创建线程的方式,设置线程名字、获取名字,线程优先级priority,加入休眠的方法,,后台线程,礼让线程,Join,中断线程,某电影院,共有100张票线程流程图,3售票窗口,

    多线程 1.线程的引入 进程: 正在运行的程序,是系统进行资源分配和调用的独立单位.每一个进程都有它自己的内存空间和资源. 线程: 是进程的单个顺序控制流,或者说就是一个单独执行的路径 一个进程如果只 ...

最新文章

  1. CentOS7系统下修改网卡为eth0
  2. 2020ICPC·小米 网络选拔赛第一场 全部题解
  3. SCCM2012工作组PC安装客户端问题
  4. 通过文件IO控制硬件设备的方法
  5. vba数组下标越界_VBA编程知识点(7)——数组基本知识
  6. SAP Cloud Platform approuter的本地安装
  7. 输入输出数组元素的函数重载_C ++函数重载| 查找输出程序| 套装3
  8. 前端开发知识点解答-JavaScript-面试
  9. in最多可以放多少?_新手开店,放多少商品才能获取最多流量?
  10. 关于使用Cobalt Strike制作宏病毒
  11. Android11 强制所有APP 横屏显示
  12. C语言BMP图像的读取、存入、水平镜像、竖直镜像、马赛克模糊处理、灰度二值化处理
  13. Codeforces 1153
  14. response setHeader 设置下载中文文件名乱码问题
  15. 比 996 更可怕的是职场 PUA
  16. 显示购物车列表和修改商品数量
  17. Oracle 批量插入(insert all into)
  18. R语言:ggplot2画带误差棒的折线图的过程及细节。
  19. 最高薪14.5k!这个“寒冬”汇智动力火力全开!
  20. 单片机17种常见的电路设计模块

热门文章

  1. 【数据库】 MySQL备份恢复
  2. 为什么要用RSocket
  3. Spring实战 第1章 Spring之旅
  4. 快速傅立叶变换:FFT算法原理及C++实现
  5. Java中hasNext()的作用
  6. hook C++类的虚表,替换成其他函数
  7. Python中文全攻略 中文乱码 输出中文乱码
  8. 小白自学3DMAX教程:500集全网最新3DMAX学习教程,一学就会.
  9. matlab设置xyz,matlab基本XYZ立体绘图命令
  10. python 电压 谐波_教你计算总谐波失真(THD)