Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 什么会导致设置CurrentCulture崩溃?_C#_Currentculture - Fatal编程技术网

C# 什么会导致设置CurrentCulture崩溃?

C# 什么会导致设置CurrentCulture崩溃?,c#,currentculture,C#,Currentculture,最近,我的撞车经理给我发了一封电子邮件,说我正在制作一款游戏 System.ArgumentException: Exception from HRESULT: 0x80070057 (E_INVALIDARG) at System.Globalization.CultureInfo.nativeSetThreadLocale(String localeName) at System.Threading.Thread.set_CurrentCulture(Cu

最近,我的撞车经理给我发了一封电子邮件,说我正在制作一款游戏

    System.ArgumentException: Exception from HRESULT: 0x80070057 (E_INVALIDARG)
       at System.Globalization.CultureInfo.nativeSetThreadLocale(String localeName)
       at System.Threading.Thread.set_CurrentCulture(CultureInfo value)
       at Siphon_Spirit.Game1.Initialize()
       at Microsoft.Xna.Framework.Game.RunGame(Boolean useBlockingRun)
       at Siphon_Spirit.Program.Main(String[] args)
由于它是自动通过电子邮件发送的,我不知道用户的位置,但似乎他们的机器没有设置文化不变量之类的

在初始化方法中,我使用以下代码。我相信只有设置CurrentCulture和CurrentUICulture的两行代码会引起问题

protected override void Initialize()
    {
        this.IsMouseVisible = false;
        SetFullScreen(true);            
        SaveController.LoadOptions();
        screenManager = new Screens.ScreenManager();
        screenManager.Initialize();
        graphics.ApplyChanges();
        Window.Title = "Siphon Spirit";
        SaveController.Initialize();
        rendertarget = new RenderTarget2D(GraphicsDevice, GlobalData.ScreenWidth, GlobalData.ScreenHeight);

        debugger = new Debugger();
        Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
        Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.InvariantCulture;
        base.Initialize();
    }

关于是什么导致它崩溃有什么想法吗?这似乎是一个孤立的案例,因为越来越多的人运行它时没有任何问题。

旁注:我不认为
InvariantCulture
应该被用作全球文化。。。试着设置为EN-US(这基本上相当于不变量,但真实且可能由操作系统支持,与不变量不同)。@AlexeiLevenkov你所说的
是什么意思?我不认为不变量文化应该被用作全球文化
<代码>不变式文化是非常受支持的。(不确定XNA)我同意Alexei的观点,不变式文化是一种合成文化,可能会在引导XP的机器上造成问题。更改线程区域性是一个危险的提议,工作线程仍然使用默认区域性,这可能会导致许多微妙的问题。直到.NET 4.5添加了CultureInfo.DefaultThreadXxx属性后,这个问题才得到解决。@SriramSakthivel-参见Hans Passant的评论。在解析/格式化调用中显式使用不变量是非常好的,但我会非常担心将线程全局(
thread.CurrentThread.CurrentUICulture
/
CurrentCulture
)设置为不变量的代码。@AlexeiLevenkov但它一直对我有帮助。在winform、控制台应用程序中工作。所以我说它是被支持的