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

Definition

Ruft die Standardkultur für Threads in der aktuellen Anwendungsdomäne ab oder legt diese fest.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

Eigenschaftswert

Die Standardkultur für Threads in der aktuellen Anwendungsdomäne oder null, wenn die aktuelle Systemkultur die standardmäßige Threadkultur in der Anwendungsdomäne ist.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.

Beispiele

Im folgenden Beispiel wird das Standardverhalten der .NET Framework beim Definieren der aktuellen Kultur eines neuen Threads veranschaulicht.The following example illustrates the default behavior of the .NET Framework in defining the current culture of a new thread. Beim Start werden im Beispiel die aktuelle Kultur und die aktuelle Benutzeroberflächen Kultur auf Französisch (Frankreich) auf allen Systemen festgelegt, mit Ausnahme derjenigen, bei denen die Standardsystem Kultur bereits Französisch (Frankreich) ist.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). Wenn die Standardsystem Kultur bereits Französisch (Frankreich) ist, legt der Code die aktuelle Kultur und die aktuelle Benutzeroberflächen Kultur auf Englisch (USA) fest.If the default system culture is already French (France), the code sets the current culture and the current UI culture to English (United States). Anschließend wird die DisplayRandomNumbers -Routine aufgerufen, die drei Zufallszahlen generiert und Sie als Währungswerte anzeigt.It then calls the DisplayRandomNumbers routine, which generates three random numbers and displays them as currency values. Anschließend wird ein neuer Thread erstellt, in dem auch die DisplayRandomNumbers Routine ausgeführt wird.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     

Wie die Ausgabe des Beispiels zeigt, zeigt der Haupt Thread, wenn das Beispiel auf einem Computer ausgeführt wird, dessen System Kultur Englisch (USA) ist, seine Währungswerte mithilfe der Formatierungs Konventionen der Kultur Französisch (Frankreich).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. Da die Kultur des Arbeits Threads jedoch von der aktuellen Windows-System Kultur abgeleitet ist und nicht von der aktuellen Kultur der Anwendung, zeigt der Arbeits Thread seine Währungswerte mithilfe der Formatierungs Konventionen der Kultur "Englisch (USA)" an.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.

Im folgenden Beispiel werden die DefaultThreadCurrentCulture - DefaultThreadCurrentUICulture Eigenschaft und die-Eigenschaft verwendet, um die aktuelle Kultur und die aktuelle Benutzeroberflächen Kultur eines neuen Anwendungs Threads zu definieren.The following example uses the DefaultThreadCurrentCulture and DefaultThreadCurrentUICulture properties to define the current culture and current UI culture of a new application thread. Beim Start werden im Beispiel die aktuelle Kultur und die aktuelle Benutzeroberflächen Kultur auf Französisch (Frankreich) auf allen Systemen festgelegt, mit Ausnahme derjenigen, bei denen die Standardsystem Kultur bereits Französisch (Frankreich) ist.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). Wenn die Standardsystem Kultur bereits Französisch (Frankreich) ist, wird die aktuelle Kultur und die aktuelle Benutzeroberflächen Kultur auf Englisch (USA) festgelegt.If the default system culture is already French (France), it sets the current culture and the current UI culture to English (United States). Anschließend wird die DisplayRandomNumbers -Routine aufgerufen, die drei Zufallszahlen generiert und Sie als Währungswerte anzeigt.It then calls the DisplayRandomNumbers routine, which generates three random numbers and displays them as currency values. Anschließend wird ein neuer Thread erstellt, in dem auch die DisplayRandomNumbers Routine ausgeführt wird.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 €

Wie die Ausgabe des Beispiels zeigt, wenn das Beispiel auf einem Computer ausgeführt wird, dessen System Kultur Englisch (USA) ist, zeigen sowohl der Haupt Thread als auch der Arbeits Thread ihre Währungswerte mithilfe der Formatierungs Konventionen der Kultur Französisch (Frankreich) an.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.

Hinweise

.NET Framework 4.NET Framework 4 In und früheren Versionen ist die Kultur aller Threads standardmäßig auf die Windows-System Kulturfest gelegt.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. Bei Anwendungen, deren aktuelle Kultur von der Standardsystem Kultur abweicht, ist dieses Verhalten oft nicht erwünscht.For applications whose current culture differs from the default system culture, this behavior is often undesirable. In kann eine Anwendung DefaultThreadCurrentCulture mithilfe der-Eigenschaft die Standard Kultur aller Threads in einer Anwendungsdomäne definieren. .NET Framework 4.5.NET Framework 4.5In 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.

Wichtig

Wenn Sie die Kultur vorhandener Threads, die in einer Anwendungsdomäne ausgeführt werden, nicht explizit festgelegt DefaultThreadCurrentCulture haben, wird durch das Festlegen der-Eigenschaft auch die Kultur dieser Threads geändert.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. Wenn diese Threads jedoch in einer anderen Anwendungsdomäne ausgeführt werden, wird ihre Kultur durch die DefaultThreadCurrentCulture -Eigenschaft in dieser Anwendungsdomäne oder, wenn kein Standardwert definiert ist, von der Standardsystem Kultur definiert.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. Aus diesem Grund wird empfohlen, die Kultur des Hauptanwendungs Threads stets explizit festzulegen und sich nicht auf die DefaultThreadCurrentCulture -Eigenschaft zu verlassen, um die Kultur des Hauptanwendungs Threads zu definieren.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.

Sofern Sie nicht explizit festgelegt wird, ist DefaultThreadCurrentCulture nullder Wert der-Eigenschaft, und die Kultur der Threads in einer Anwendungsdomäne, denen keine explizite Kultur zugewiesen wurde, wird durch die standardmäßige Windows-System Kultur definiert.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.

Weitere Informationen zu Kulturen, Threads und Anwendungs Domänen finden Sie in den Abschnitten "Kultur und Threads" und "Kultur und Anwendungs Domänen" auf CultureInfo der Referenzseite.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.

Gilt für:

Siehe auch