CultureInfo.DefaultThreadCurrentCulture Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 null
ve 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.