gpt4 book ai didi

c# - 如何在 C# 中获取当前区域设置?

转载 作者:IT王子 更新时间:2023-10-29 04:24:01 24 4
gpt4 key购买 nike

通常你可以通过写类似的东西来得到它

CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;

但是这样你只能得到在应用程序启动时配置的 CultureInfo 并且如果之后设置被更改将不会更新。

那么,如何获取当前在控制面板 -> 区域和语言设置中配置的 CultureInfo?

最佳答案

正如@Christian 提议的那样ClearCachedData是使用的方法。但根据 MSDN:

The ClearCachedData method does not refresh the information in the Thread.CurrentCulture property for existing threads

因此您需要先调用该函数,然后再启动一个新线程。在这个新线程中,您可以使用 CurrentCulture 获取文化的新值。

class Program
{
private class State
{
public CultureInfo Result { get; set; }
}

static void Main(string[] args)
{
Thread.CurrentThread.CurrentCulture.ClearCachedData();
var thread = new Thread(
s => ((State)s).Result = Thread.CurrentThread.CurrentCulture);
var state = new State();
thread.Start(state);
thread.Join();
var culture = state.Result;
// Do something with the culture
}

请注意,如果您还需要重置 CurrentUICulture,则应单独进行

Thread.CurrentThread.CurrentUICulture.ClearCachedData()

关于c# - 如何在 C# 中获取当前区域设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1542409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com