CultureInfo.DefaultThreadCurrentCulture CultureInfo.DefaultThreadCurrentCulture CultureInfo.DefaultThreadCurrentCulture CultureInfo.DefaultThreadCurrentCulture Property

Definición

Obtiene o establece la referencia cultural predeterminada para los subprocesos del dominio de aplicación actual.Gets or sets the default culture for threads in the current application domain.

public:
 static property System::Globalization::CultureInfo ^ DefaultThreadCurrentCulture { System::Globalization::CultureInfo ^ get(); void set(System::Globalization::CultureInfo ^ value); };
public static System.Globalization.CultureInfo DefaultThreadCurrentCulture { get; set; }
member this.DefaultThreadCurrentCulture : System.Globalization.CultureInfo with get, set
Public Shared Property DefaultThreadCurrentCulture As CultureInfo

Valor de propiedad

Referencia cultural predeterminada para los subprocesos del dominio de aplicación actual, o null si la referencia cultural actual del sistema es la referencia cultural predeterminada del subproceso en el dominio de aplicación.The default culture for threads in the current application domain, or null if the current system culture is the default thread culture in the application domain.

Ejemplos

El ejemplo siguiente muestra el comportamiento predeterminado de .NET Framework en la definición de la referencia cultural actual de un nuevo subproceso.The following example illustrates the default behavior of the .NET Framework in defining the current culture of a new thread. Al iniciarse, el ejemplo establece la referencia cultural actual y la referencia cultural de interfaz de usuario actual al francés (Francia) en todos los sistemas, excepto aquellos en los que la referencia cultural predeterminada del sistema ya es francés (Francia).At startup, the example sets the current culture and the current UI culture to French (France) on all systems except those on which the default system culture is already French (France). Si la referencia cultural predeterminada del sistema ya está en francés (Francia), el código establece la referencia cultural actual y la referencia cultural de interfaz de usuario actual en inglés (Estados Unidos).If the default system culture is already French (France), the code sets the current culture and the current UI culture to English (United States). A continuación, llama el DisplayRandomNumbers rutina, que genera tres números aleatorios y los muestra como valores de moneda.It then calls the DisplayRandomNumbers routine, which generates three random numbers and displays them as currency values. A continuación, crea un nuevo subproceso, que también ejecuta el DisplayRandomNumbers rutina.Next, it creates a new thread, which also executes the DisplayRandomNumbers routine.

using System;
using System.Globalization;
using System.Text;
using System.Threading;

public class Example
{
   public static void Main()
   {
      Console.OutputEncoding = Encoding.UTF8; 
      // Change current culture
      CultureInfo culture;
      if (Thread.CurrentThread.CurrentCulture.Name == "fr-FR")
         culture = CultureInfo.CreateSpecificCulture("en-US");
      else
         culture = CultureInfo.CreateSpecificCulture("fr-FR");

      Thread.CurrentThread.CurrentCulture = culture;
      Thread.CurrentThread.CurrentUICulture = culture;
      
      // Generate and display three random numbers on the current thread.
      DisplayRandomNumbers();
      Thread.Sleep(1000);
      
      Thread workerThread = new Thread(new ThreadStart(Example.DisplayRandomNumbers));
      workerThread.Start();
   }

   private static void DisplayRandomNumbers()
   {
      Console.WriteLine();
      Console.WriteLine("Current Culture:    {0}", 
                        Thread.CurrentThread.CurrentCulture);
      Console.WriteLine("Current UI Culture: {0}", 
                        Thread.CurrentThread.CurrentUICulture);

      Console.Write("Random Values: ");
      Random rand = new Random();
      for (int ctr = 0; ctr <= 2; ctr++)
         Console.Write("     {0:C2}     ", rand.NextDouble());

      Console.WriteLine();
   }
}
// The example displays output similar to the following:
//    Current Culture:    fr-FR
//    Current UI Culture: fr-FR
//    Random Values:      0,77 €          0,35 €          0,52 €     
//    
//    Current Culture:    en-US
//    Current UI Culture: en-US
//    Random Values:      $0.30          $0.79          $0.65     
Imports System.Globalization
Imports System.Text
Imports System.Threading

Module Example

   Public Sub Main()
      Console.OutputEncoding = Encoding.UTF8 
      ' Change current culture
      Dim culture As CultureInfo
      If Thread.CurrentThread.CurrentCulture.Name = "fr-FR" Then
         culture = CultureInfo.CreateSpecificCulture("en-US")
      Else
         culture = CultureInfo.CreateSpecificCulture("fr-FR")
      End If   
      Thread.CurrentThread.CurrentCulture = culture
      Thread.CurrentThread.CurrentUICulture = culture
      
      ' Generate and display three random numbers on the current thread.
      DisplayRandomNumbers()
      Thread.Sleep(1000)
      
      Dim workerThread As New Thread(AddressOf Example.DisplayRandomNumbers)
      workerThread.Start()
   End Sub
   
   Private Sub DisplayRandomNumbers()
      Console.WriteLine()
      Console.WriteLine("Current Culture:    {0}", 
                        Thread.CurrentThread.CurrentCulture)
      Console.WriteLine("Current UI Culture: {0}", 
                        Thread.CurrentThread.CurrentUICulture)

      Console.Write("Random Values: ")
      Dim rand As New Random()
      For ctr As Integer = 0 To 2
         Console.Write("     {0:C2}     ", rand.NextDouble())
      Next      
      Console.WriteLine()
   End Sub
End Module
' The example displays output similar to the following:
'    Current Culture:    fr-FR
'    Current UI Culture: fr-FR
'    Random Values:      0,77 €          0,35 €          0,52 €     
'    
'    Current Culture:    en-US
'    Current UI Culture: en-US
'    Random Values:      $0.30          $0.79          $0.65     

Como muestra el resultado del ejemplo, cuando se ejecuta el ejemplo en un equipo cuya referencia cultural del sistema es inglés (Estados Unidos), el subproceso principal muestra sus valores de moneda mediante las convenciones de formato de la referencia cultural de francés (Francia).As the output from the example shows, when the example is run on a computer whose system culture is English (United States), the main thread displays its currency values using the formatting conventions of the French (France) culture. Sin embargo, porque la referencia cultural del subproceso de trabajo se deriva de la referencia cultural actual del sistema de Windows en lugar de la referencia cultural actual de la aplicación, el subproceso de trabajo muestra sus valores de moneda mediante las convenciones de formato de la referencia cultural inglés (Estados Unidos).However, because the worker thread's culture is derived from the current Windows system culture rather than the application's current culture, the work thread displays its currency values using the formatting conventions of the English (United States) culture.

En el ejemplo siguiente se usa el DefaultThreadCurrentCulture y DefaultThreadCurrentUICulture las propiedades para definir la referencia cultural actual y la actual referencia cultural de interfaz de usuario de un nuevo subproceso de aplicación.The following example uses the DefaultThreadCurrentCulture and DefaultThreadCurrentUICulture properties to define the current culture and current UI culture of a new application thread. Al iniciarse, el ejemplo establece la referencia cultural actual y la referencia cultural de interfaz de usuario actual al francés (Francia) en todos los sistemas, excepto aquellos en los que la referencia cultural predeterminada del sistema ya es francés (Francia).At startup, the example sets the current culture and the current UI culture to French (France) on all systems except those on which the default system culture is already French (France). Si la referencia cultural predeterminada del sistema ya está en francés (Francia), Establece la referencia cultural actual y la referencia cultural de interfaz de usuario actual para inglés (Estados Unidos).If the default system culture is already French (France), it sets the current culture and the current UI culture to English (United States). A continuación, llama el DisplayRandomNumbers rutina, que genera tres números aleatorios y los muestra como valores de moneda.It then calls the DisplayRandomNumbers routine, which generates three random numbers and displays them as currency values. A continuación, crea un nuevo subproceso, que también ejecuta el DisplayRandomNumbers rutina.Next, it creates a new thread, which also executes the DisplayRandomNumbers routine.

using System;
using System.Globalization;
using System.Text;
using System.Threading;

public class Example
{
   public static void Main()
   {
      Console.OutputEncoding = Encoding.UTF8; 
      // Change current culture
      CultureInfo culture;
      if (Thread.CurrentThread.CurrentCulture.Name == "fr-FR")
         culture = CultureInfo.CreateSpecificCulture("en-US");
      else
         culture = CultureInfo.CreateSpecificCulture("fr-FR");
      
      CultureInfo.DefaultThreadCurrentCulture = culture;
      CultureInfo.DefaultThreadCurrentUICulture = culture;

      Thread.CurrentThread.CurrentCulture = culture;
      Thread.CurrentThread.CurrentUICulture = culture;
      
      // Generate and display three random numbers on the current thread.
      DisplayRandomNumbers();
      Thread.Sleep(1000);
      
      Thread workerThread = new Thread(new ThreadStart(Example.DisplayRandomNumbers));
      workerThread.Start();
   }

   private static void DisplayRandomNumbers()
   {
      Console.WriteLine();
      Console.WriteLine("Current Culture:    {0}", 
                        Thread.CurrentThread.CurrentCulture);
      Console.WriteLine("Current UI Culture: {0}", 
                        Thread.CurrentThread.CurrentUICulture);

      Console.Write("Random Values: ");
      Random rand = new Random();
      for (int ctr = 0; ctr <= 2; ctr++)
         Console.Write("     {0:C2}     ", rand.NextDouble());

      Console.WriteLine();
   }
}
// The example displays output similar to the following:
//    Current Culture:    fr-FR
//    Current UI Culture: fr-FR
//    Random Values:      0,78 €          0,80 €          0,37 €
//    
//    Current Culture:    fr-FR
//    Current UI Culture: fr-FR
//    Random Values:      0,52 €          0,32 €          0,15 €
Imports System.Globalization
Imports System.Text
Imports System.Threading

Module Example
   Public Sub Main()
      Console.OutputEncoding = Encoding.UTF8 
      ' Change current culture
      Dim culture As CultureInfo
      
      If Thread.CurrentThread.CurrentCulture.Name = "fr-FR" Then
         culture = CultureInfo.CreateSpecificCulture("en-US")
      Else
         culture = CultureInfo.CreateSpecificCulture("fr-FR")
      End If   
      CultureInfo.DefaultThreadCurrentCulture = culture
      CultureInfo.DefaultThreadCurrentUICulture = culture
      
      Thread.CurrentThread.CurrentCulture = culture
      Thread.CurrentThread.CurrentUICulture = culture
      
      ' Generate and display three random numbers on the current thread.
      DisplayRandomNumbers()
      Thread.Sleep(1000)
      
      Dim workerThread As New Thread(AddressOf Example.DisplayRandomNumbers)
      workerThread.Start()
   End Sub
   
   Private Sub DisplayRandomNumbers()
      Console.WriteLine()
      Console.WriteLine("Current Culture:    {0}", 
                        Thread.CurrentThread.CurrentCulture)
      Console.WriteLine("Current UI Culture: {0}", 
                        Thread.CurrentThread.CurrentUICulture)
      Console.Write("Random Values: ")
      Dim rand As New Random()
      For ctr As Integer = 0 To 2
         Console.Write("     {0:C2}     ", rand.NextDouble())
      Next      
      Console.WriteLine()
   End Sub
End Module
' The example displays output similar to the following:
'    Current Culture:    fr-FR
'    Current UI Culture: fr-FR
'    Random Values:      0,78 €          0,80 €          0,37 €
'    
'    Current Culture:    fr-FR
'    Current UI Culture: fr-FR
'    Random Values:      0,52 €          0,32 €          0,15 €

Como muestra el resultado del ejemplo, cuando se ejecuta el ejemplo en un equipo cuya referencia cultural del sistema es inglés (Estados Unidos), el subproceso principal y el subproceso de trabajo mostrar sus valores de moneda mediante las convenciones de formato de la referencia cultural de francés (Francia).As the output from the example shows, when the example is run on a computer whose system culture is English (United States), both the main thread and the worker thread display their currency values using the formatting conventions of the French (France) culture.

Comentarios

En el .NET Framework 4.NET Framework 4 y versiones anteriores, de forma predeterminada, se establece la referencia cultural de todos los subprocesos en la referencia cultural del sistema de Windows.In the .NET Framework 4.NET Framework 4 and previous versions, by default, the culture of all threads is set to the Windows system culture. Para las aplicaciones cuya referencia cultural actual difiere de la referencia cultural del sistema de forma predeterminada, este comportamiento suele ser deseable.For applications whose current culture differs from the default system culture, this behavior is often undesirable. En el .NET Framework 4.5.NET Framework 4.5, el DefaultThreadCurrentCulture propiedad permite que una aplicación definir la referencia cultural predeterminada de todos los subprocesos en un dominio de aplicación.In the .NET Framework 4.5.NET Framework 4.5, the DefaultThreadCurrentCulture property enables an application to define the default culture of all threads in an application domain.

Importante

Si no estableció explícitamente la referencia cultural de cualquier existente subprocesos que se ejecutan en un dominio de aplicación, establecer el DefaultThreadCurrentCulture propiedad también cambia la referencia cultural de estos subprocesos.If you have not explicitly set the culture of any existing threads executing in an application domain, setting the DefaultThreadCurrentCulture property also changes the culture of these threads. Sin embargo, si estos subprocesos se ejecutan en otro dominio de aplicación, su referencia cultural se define mediante el DefaultThreadCurrentCulture propiedad en ese dominio de aplicación o bien, si no se define ningún valor predeterminado, mediante la referencia cultural predeterminada del sistema.However, if these threads execute in another application domain, their culture is defined by the DefaultThreadCurrentCulture property in that application domain or, if no default value is defined, by the default system culture. Por este motivo, se recomienda que establezca siempre explícitamente la referencia cultural del subproceso principal de la aplicación de y no depender de la DefaultThreadCurrentCulture propiedad para definir la referencia cultural del subproceso principal de la aplicación.Because of this, we recommend that you always explicitly set the culture of your main application thread, and not rely on the DefaultThreadCurrentCulture property to define the culture of the main application thread.

A menos que se establecen explícitamente, el valor de la DefaultThreadCurrentCulture propiedad es null, y la referencia cultural de subprocesos en un dominio de aplicación que no se ha asignado una referencia cultural explícita se define mediante la referencia cultural del sistema de Windows de forma predeterminada.Unless it is set explicitly, the value of the DefaultThreadCurrentCulture property is null, and the culture of threads in an application domain that have not been assigned an explicit culture is defined by the default Windows system culture.

Para obtener más información acerca de las referencias culturales, subprocesos y dominios de aplicación, vea "referencia cultural y los subprocesos" y "referencia cultural y los dominios de aplicación" secciones en el CultureInfo página de referencia.For more information about cultures, threads, and application domains, see the "Culture and threads" and "Culture and application domains" sections in the CultureInfo reference page.

Se aplica a

Consulte también: