SSK*_*SSK 1 .net c# thread-local-storage async-await
我在Dot Net Framework 4.5,4.5.1,4.5.2和4.6上运行了以下代码
public async Task<int> PrintCulturesAsync()
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-IN");
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
Console.WriteLine(Thread.CurrentThread.CurrentUICulture);
await SomeMethod().ConfigureAwait(true);
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
Console.WriteLine(Thread.CurrentThread.CurrentUICulture);
return 1;
}
Run Code Online (Sandbox Code Playgroud)
我观察到,只有在Framework 4.6上,C才能onfigureAwait(true)正常工作并在await SomeMethod().ConfigureAwait(true)调用后显示相同的文化.4.5,4.5.1和4.5.2不支持吗?
这是.NET Framework 4.6中的一项新功能
请参阅:任务类(System.Threading.Tasks)
从面向.NET Framework 4.6的桌面应用程序开始,创建和调用任务的线程文化成为线程上下文的一部分.也就是说,无论任务执行的线程的当前文化如何,任务的当前文化是调用线程的文化.对于在.NET Framework 4.6之前定位.NET Framework版本的应用程序,任务的文化是任务执行的线程的文化.有关更多信息,请参阅CultureInfo主题中的"基于文化和任务的异步操作"部分.请注意,应用商店应用会遵循Windows运行时设置并获取默认文化.
因此,新生成的任务与产生的线程具有相同的文化.
| 归档时间: |
|
| 查看次数: |
633 次 |
| 最近记录: |