ARTICLE AD BOX
This question has this answer.
However, this MRE:
static async Task Scenario_DefaultThreadCurrentCulture() { CultureInfo.CurrentCulture = new CultureInfo("en-US"); CultureInfo.CurrentUICulture = new CultureInfo("en-US"); CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("fr-FR"); CultureInfo.DefaultThreadCurrentUICulture = new CultureInfo("fr-FR"); Console.WriteLine($"Main thread : {CultureInfo.CurrentCulture.Name}"); await Task.Run(() => { Console.WriteLine($"Task.Run : {CultureInfo.CurrentCulture.Name}"); }); }Outputs:
Main thread : en-US Task.Run : en-USWhy doesn't CultureInfo.DefaultThreadCurrentCulture do anything here? Is it because Task.Run uses threads from a thread pool which spawned its threads before CultureInfo.DefaultThreadCurrentCulture ever happened?
