CultureInfo.DefaultThreadCurrentCulture Propriété

Définition

Obtient ou définit la culture par défaut pour les threads dans le domaine d'application actuel.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; }
public static System.Globalization.CultureInfo? DefaultThreadCurrentCulture { get; set; }
member this.DefaultThreadCurrentCulture : System.Globalization.CultureInfo with get, set
Public Shared Property DefaultThreadCurrentCulture As CultureInfo

Valeur de propriété

CultureInfo

Culture par défaut pour les threads dans le domaine d'application actuel, ou null si la culture du système actuelle est la culture du thread par défaut dans le domaine d'application.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.

Exemples

L’exemple suivant illustre le comportement par défaut de la .NET Framework dans la définition de la culture actuelle d’un nouveau thread.The following example illustrates the default behavior of the .NET Framework in defining the current culture of a new thread. Au démarrage, l’exemple définit la culture actuelle et la culture d’interface utilisateur actuelle sur français (France) sur tous les systèmes, à l’exception de ceux dont la culture système par défaut est déjà français (France).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 culture système par défaut est déjà en français (France), le code définit la culture actuelle et la culture d’interface utilisateur actuelle sur l’anglais (États-Unis).If the default system culture is already French (France), the code sets the current culture and the current UI culture to English (United States). Il appelle ensuite la DisplayRandomNumbers routine, qui génère trois nombres aléatoires et les affiche sous forme de valeurs monétaires.It then calls the DisplayRandomNumbers routine, which generates three random numbers and displays them as currency values. Ensuite, il crée un nouveau thread, qui exécute également la 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     

Comme le montre la sortie de l’exemple, quand l’exemple est exécuté sur un ordinateur dont la culture système est l’anglais (États-Unis), le thread principal affiche ses valeurs monétaires à l’aide des conventions de mise en forme de la culture français (France).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. Toutefois, étant donné que la culture du thread de travail est dérivée de la culture système Windows actuelle plutôt que de la culture actuelle de l’application, le thread de travail affiche ses valeurs monétaires à l’aide des conventions de mise en forme de la culture anglais (États-Unis).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’exemple suivant utilise les DefaultThreadCurrentCulture DefaultThreadCurrentUICulture Propriétés et pour définir la culture actuelle et la culture d’interface utilisateur actuelle d’un nouveau thread d’application.The following example uses the DefaultThreadCurrentCulture and DefaultThreadCurrentUICulture properties to define the current culture and current UI culture of a new application thread. Au démarrage, l’exemple définit la culture actuelle et la culture d’interface utilisateur actuelle sur français (France) sur tous les systèmes, à l’exception de ceux dont la culture système par défaut est déjà français (France).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 culture système par défaut est déjà en français (France), elle définit la culture actuelle et la culture d’interface utilisateur actuelle sur l’anglais (États-Unis).If the default system culture is already French (France), it sets the current culture and the current UI culture to English (United States). Il appelle ensuite la DisplayRandomNumbers routine, qui génère trois nombres aléatoires et les affiche sous forme de valeurs monétaires.It then calls the DisplayRandomNumbers routine, which generates three random numbers and displays them as currency values. Ensuite, il crée un nouveau thread, qui exécute également la 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 €

Comme le montre la sortie de l’exemple, quand l’exemple est exécuté sur un ordinateur dont la culture du système est l’anglais (États-Unis), le thread principal et le thread de travail affichent leurs valeurs monétaires à l’aide des conventions de mise en forme de la culture français (France).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.

Remarques

Dans .NET Framework 4.NET Framework 4 et les versions précédentes, par défaut, la culture de tous les threads est définie sur la culture système 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. Pour les applications dont la culture actuelle diffère de la culture système par défaut, ce comportement est souvent indésirable.For applications whose current culture differs from the default system culture, this behavior is often undesirable. Dans .NET Framework 4.5.NET Framework 4.5 , la DefaultThreadCurrentCulture propriété permet à une application de définir la culture par défaut de tous les threads dans un domaine d’application.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.

Important

Si vous n’avez pas défini explicitement la culture de tous les threads existants s’exécutant dans un domaine d’application, la définition DefaultThreadCurrentCulture de la propriété modifie également la culture de ces threads.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. Toutefois, si ces threads s’exécutent dans un autre domaine d’application, leur culture est définie par la DefaultThreadCurrentCulture propriété dans ce domaine d’application ou, si aucune valeur par défaut n’est définie, par la culture système par défaut.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. Pour cette raison, nous vous recommandons de toujours définir explicitement la culture de votre thread d’application principal et de ne pas compter sur la DefaultThreadCurrentCulture propriété pour définir la culture du thread d’application principal.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.

À moins qu’il ne soit défini explicitement, la valeur de la DefaultThreadCurrentCulture propriété est null , et la culture de threads dans un domaine d’application auxquels aucune culture explicite n’a été affectée est définie par la culture système Windows par défaut.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.

Pour plus d’informations sur les cultures, les threads et les domaines d’application, consultez les sections « culture et threads » et « cultures et domaines d’application » dans la CultureInfo page de référence.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.

S’applique à

Voir aussi