Jak @Christian zaproponował ClearCachedData jest metoda. Ale zgodnie z MSDN:
Sposób ClearCachedData nie odświeżyć informacje w nieruchomości Thread.CurrentCulture dla istniejących wątków
więc trzeba najpierw wywołać funkcję, a następnie rozpocząć nowy wątek. W tym nowym wątku możesz użyć CurrentCulture, aby uzyskać świeże wartości kultury.
class Program
{
private class State
{
public CultureInfo Result { get; set; }
}
static void Main(string[] args)
{
Thread.CurrentThread.CurrentCulture.ClearCachedData();
var thread = new Thread(
s => ((State)s).Result = Thread.CurrentThread.CurrentCulture);
var state = new State();
thread.Start(state);
thread.Join();
var culture = state.Result;
// Do something with the culture
}
}
Zauważ, że jeśli trzeba także zresetować CurrentUICulture, należy to zrobić oddzielnie
Thread.CurrentThread.CurrentUICulture.ClearCachedData()
Niezły! –
Występuje błąd Nie można znaleźć typu lub przestrzeni nazw "Stan" (czy brakuje instrukcji użycia lub odniesienia do zespołu?) W linii: var thread = new Thread ( s => ((Stan) s) .Result = Thread.CurrentThread.CurrentCulture); Problem dotyczy odwołania do stanu. Masz pomysł, jak rozwiązać ten problem? Tks – Pascal
@Pascal, 'State' to prywatna klasa, którą zdefiniowałem w klasie' Program', ale możesz spróbować uzewnętrznić ją do własnego pliku i upublicznić. Również 'State' nie jest prawdopodobnie bardzo dobrą nazwą, więc możesz spróbować zmienić jego nazwę na coś bardziej znaczącego. –