CultureInfo.DefaultThreadCurrentCulture Özellik

Tanım

Geçerli uygulama etki alanındaki iş parçacıkları için varsayılan kültürü alır veya ayarlar.

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; }
static member DefaultThreadCurrentCulture : System.Globalization.CultureInfo with get, set
Public Shared Property DefaultThreadCurrentCulture As CultureInfo

Özellik Değeri

Geçerli uygulama etki alanındaki iş parçacıkları için varsayılan kültür veya null geçerli sistem kültürü uygulama etki alanındaki varsayılan iş parçacığı kültürüyse.

Örnekler

Aşağıdaki örnek, yeni bir iş parçacığının geçerli kültürünü tanımlarken .NET Framework varsayılan davranışını gösterir. Başlangıçta örnek, varsayılan sistem kültürünün zaten Fransızca (Fransa) olduğu sistemler dışında tüm sistemlerde geçerli kültürü ve geçerli kullanıcı arabirimi kültürünü Fransızca (Fransa) olarak ayarlar. Varsayılan sistem kültürü zaten Fransızca (Fransa) ise, kod geçerli kültürü ve geçerli kullanıcı arabirimi kültürünü İngilizce (Birleşik Devletler) olarak ayarlar. Ardından üç rastgele sayı oluşturan ve bunları para birimi değerleri olarak görüntüleyen yordamı çağırır DisplayRandomNumbers . Ardından, yordamı da yürüten DisplayRandomNumbers yeni bir iş parçacığı oluşturur.

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

Örneğin çıktısının gösterdiği gibi, örnek sistem kültürü İngilizce (Birleşik Devletler) olan bir bilgisayarda çalıştırıldığında, ana iş parçacığı Fransızca (Fransa) kültürünün biçimlendirme kurallarını kullanarak para birimi değerlerini görüntüler. Ancak, çalışan iş parçacığının kültürü uygulamanın geçerli kültürü yerine geçerli Windows sistem kültüründen türetildiğinden, iş parçacığı İngilizce (Birleşik Devletler) kültürünün biçimlendirme kurallarını kullanarak para birimi değerlerini görüntüler.

Aşağıdaki örnek, yeni bir uygulama iş parçacığının geçerli kültürünü ve geçerli kullanıcı arabirimi kültürünü tanımlamak için ve DefaultThreadCurrentUICulture özelliklerini kullanırDefaultThreadCurrentCulture. Başlangıçta örnek, varsayılan sistem kültürünün zaten Fransızca (Fransa) olduğu sistemler dışında tüm sistemlerde geçerli kültürü ve geçerli kullanıcı arabirimi kültürünü Fransızca (Fransa) olarak ayarlar. Varsayılan sistem kültürü zaten Fransızca (Fransa) ise, geçerli kültürü ve geçerli kullanıcı arabirimi kültürünü İngilizce (Birleşik Devletler) olarak ayarlar. Ardından üç rastgele sayı oluşturan ve bunları para birimi değerleri olarak görüntüleyen yordamı çağırır DisplayRandomNumbers . Ardından, yordamı da yürüten DisplayRandomNumbers yeni bir iş parçacığı oluşturur.

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 €

Örneğin çıktısının gösterdiği gibi, örnek sistem kültürü İngilizce (Birleşik Devletler) olan bir bilgisayarda çalıştırıldığında, hem ana iş parçacığı hem de çalışan iş parçacığı, Fransızca (Fransa) kültürünün biçimlendirme kurallarını kullanarak para birimi değerlerini görüntüler.

Açıklamalar

.NET Framework 4 ve önceki sürümlerde varsayılan olarak tüm iş parçacıklarının kültürü Windows sistem kültürüne ayarlanır. Geçerli kültürü varsayılan sistem kültüründen farklı olan uygulamalar için bu davranış genellikle istenmeyen bir davranıştır. .NET Framework 4.5'te özelliği, DefaultThreadCurrentCulture bir uygulamanın bir uygulama etki alanındaki tüm iş parçacıklarının varsayılan kültürünü tanımlamasını sağlar.

Önemli

Bir uygulama etki alanında yürütülen mevcut iş parçacıklarının kültürünü açıkça ayarlamadıysanız, özelliğini ayarlamak DefaultThreadCurrentCulture bu iş parçacıklarının kültürünü de değiştirir. Ancak, bu iş parçacıkları başka bir uygulama etki alanında yürütülürse, kültürleri bu uygulama etki alanındaki özelliği tarafından DefaultThreadCurrentCulture tanımlanır veya varsayılan değer tanımlanmadıysa, varsayılan sistem kültürü tarafından tanımlanır. Bu nedenle, ana uygulama iş parçacığınızın kültürünü her zaman açıkça ayarlamanızı ve ana uygulama iş parçacığının DefaultThreadCurrentCulture kültürünü tanımlamak için özelliğine güvenmemenizi öneririz.

Açıkça ayarlanmadığı sürece, özelliğinin DefaultThreadCurrentCulture değeri olur nullve açık bir kültür atanmamış bir uygulama etki alanındaki iş parçacıklarının kültürü varsayılan Windows sistem kültürü tarafından tanımlanır.

Kültürler, iş parçacıkları ve uygulama etki alanları hakkında daha fazla bilgi için başvuru sayfasındaki "Kültür ve iş parçacıkları" ve "Kültür ve uygulama etki alanları" bölümlerine CultureInfo bakın.

Şunlara uygulanır

Ayrıca bkz.