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

Definizione

Ottiene o imposta le impostazioni cultura predefinite per i thread nel dominio dell'applicazione corrente.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

Valore della proprietà

Le impostazioni cultura predefinite dei thread nel dominio applicazione corrente o null se le impostazioni cultura correnti del sistema sono le impostazioni cultura predefinite del thread nel dominio applicazione.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.

Esempi

L'esempio seguente illustra il comportamento predefinito di .NET Framework nella definizione delle impostazioni cultura correnti di un nuovo thread.The following example illustrates the default behavior of the .NET Framework in defining the current culture of a new thread. All'avvio, l'esempio imposta le impostazioni cultura correnti e le impostazioni cultura dell'interfaccia utente correnti su francese (Francia) in tutti i sistemi, ad eccezione di quelli in cui la lingua di sistema predefinita è già francese (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). Se la lingua predefinita è già francese (Francia), il codice imposta le impostazioni cultura correnti e le impostazioni cultura dell'interfaccia utente correnti su inglese (Stati Uniti).If the default system culture is already French (France), the code sets the current culture and the current UI culture to English (United States). Chiama quindi il DisplayRandomNumbers routine, che genera tre numeri casuali e li visualizza come valori di valuta.It then calls the DisplayRandomNumbers routine, which generates three random numbers and displays them as currency values. Successivamente, crea un nuovo thread, anche l'esecuzione di DisplayRandomNumbers routine.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     

Come illustrato nell'output dell'esempio, quando nell'esempio viene eseguito in un computer le cui impostazioni cultura del sistema è l'inglese (Stati Uniti), il thread principale consente di visualizzare i valori di valuta usando le convenzioni di formattazione delle impostazioni cultura francese (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. Tuttavia, poiché le impostazioni cultura del thread di lavoro sono derivata da impostazioni cultura correnti del sistema Windows anziché a impostazioni cultura correnti dell'applicazione, il thread di lavoro consente di visualizzare i valori di valuta usando le convenzioni di formattazione delle impostazioni cultura inglese (Stati Uniti).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.

L'esempio seguente usa il DefaultThreadCurrentCulture e DefaultThreadCurrentUICulture proprietà per definire le impostazioni cultura correnti e impostazioni cultura correnti dell'interfaccia utente di un nuovo thread dell'applicazione.The following example uses the DefaultThreadCurrentCulture and DefaultThreadCurrentUICulture properties to define the current culture and current UI culture of a new application thread. All'avvio, l'esempio imposta le impostazioni cultura correnti e le impostazioni cultura dell'interfaccia utente correnti su francese (Francia) in tutti i sistemi, ad eccezione di quelli in cui la lingua di sistema predefinita è già francese (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). Se la lingua predefinita è già francese (Francia), imposta le impostazioni cultura correnti e le impostazioni cultura dell'interfaccia utente correnti su inglese (Stati Uniti).If the default system culture is already French (France), it sets the current culture and the current UI culture to English (United States). Chiama quindi il DisplayRandomNumbers routine, che genera tre numeri casuali e li visualizza come valori di valuta.It then calls the DisplayRandomNumbers routine, which generates three random numbers and displays them as currency values. Successivamente, crea un nuovo thread, anche l'esecuzione di DisplayRandomNumbers routine.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 €

Come illustrato nell'output dell'esempio, quando nell'esempio viene eseguito in un computer le cui impostazioni cultura del sistema è l'inglese (Stati Uniti), sia il thread principale e il thread di lavoro visualizzati i valori di valuta usando le convenzioni di formattazione delle impostazioni cultura francese (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.

Commenti

Nel .NET Framework 4.NET Framework 4 e versioni precedenti, per impostazione predefinita, le impostazioni cultura di tutti i thread sono impostata su impostazioni cultura del sistema di 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. Per le applicazioni con le impostazioni cultura corrente è diverso da impostazioni cultura del sistema predefinita, questo comportamento è spesso indesiderato.For applications whose current culture differs from the default system culture, this behavior is often undesirable. Nel .NET Framework 4.5.NET Framework 4.5, il DefaultThreadCurrentCulture proprietà consente a un'applicazione definire le impostazioni cultura predefinite di tutti i thread in un dominio dell'applicazione.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

Se non è stato impostato in modo esplicito le impostazioni cultura di tutte le classi esistenti thread in esecuzione in un dominio dell'applicazione, l'impostazione di DefaultThreadCurrentCulture cambia anche le impostazioni cultura del thread di queste proprietà.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. Tuttavia, se questi thread eseguiti in un altro dominio applicazione, le impostazioni cultura viene definita dal DefaultThreadCurrentCulture proprietà in tale dominio dell'applicazione o, se non è definito alcun valore predefinito, dalle impostazioni cultura del sistema predefinito.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. Per questo motivo, è consigliabile impostare sempre in modo esplicito le impostazioni cultura del thread principale dell'applicazione e non basarsi su di DefaultThreadCurrentCulture proprietà per definire le impostazioni cultura del thread principale dell'applicazione.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.

Se non è impostata in modo esplicito, il valore della DefaultThreadCurrentCulture è di proprietà null, e le impostazioni cultura del thread in un dominio dell'applicazione che non sono stati assegnati di impostazioni cultura esplicite sono definita da impostazioni cultura del sistema di Windows predefinita.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.

Per altre informazioni sulle impostazioni cultura, thread e i domini applicazione, vedere "impostazioni cultura e thread" e "impostazioni cultura e i domini applicazione" sezioni nel CultureInfo pagina di riferimento.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.

Si applica a

Vedi anche