diff options
Diffstat (limited to 'mcs/class/corlib/System.Threading/Thread.cs')
-rw-r--r-- | mcs/class/corlib/System.Threading/Thread.cs | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/mcs/class/corlib/System.Threading/Thread.cs b/mcs/class/corlib/System.Threading/Thread.cs index 813c458f94..5af6800382 100644 --- a/mcs/class/corlib/System.Threading/Thread.cs +++ b/mcs/class/corlib/System.Threading/Thread.cs @@ -137,6 +137,8 @@ namespace System.Threading { IPrincipal principal; int principal_version; + bool current_culture_set; + bool current_ui_culture_set; CultureInfo current_culture; CultureInfo current_ui_culture; @@ -156,6 +158,9 @@ namespace System.Threading { static NamedDataSlot namedDataSlot; + static internal CultureInfo default_culture; + static internal CultureInfo default_ui_culture; + // can be both a ThreadStart and a ParameterizedThreadStart private MulticastDelegate threadstart; //private string thread_name=null; @@ -470,11 +475,13 @@ namespace System.Threading { public CultureInfo CurrentCulture { get { CultureInfo culture = current_culture; - if (culture != null) + if (current_culture_set && culture != null) return culture; + if (default_culture != null) + return default_culture; + current_culture = culture = CultureInfo.ConstructCurrentCulture (); - NumberFormatter.SetThreadCurrentCulture (culture); return culture; } @@ -485,16 +492,19 @@ namespace System.Threading { value.CheckNeutral (); current_culture = value; - NumberFormatter.SetThreadCurrentCulture (value); + current_culture_set = true; } } public CultureInfo CurrentUICulture { get { CultureInfo culture = current_ui_culture; - if (culture != null) + if (current_ui_culture_set && culture != null) return culture; + if (default_ui_culture != null) + return default_ui_culture; + current_ui_culture = culture = CultureInfo.ConstructCurrentUICulture (); return culture; } @@ -503,6 +513,7 @@ namespace System.Threading { if (value == null) throw new ArgumentNullException ("value"); current_ui_culture = value; + current_ui_culture_set = true; } } |