专栏名称: dotNET跨平台
专注于.NET Core的技术传播。在这里你可以谈微软.NET,Mono的跨平台开发技术。在这里可以让你的.NET项目有新的思路,不局限于微软的技术栈,横跨Windows,Linux 主流平台
今天看啥  ›  专栏  ›  dotNET跨平台

【橙子老哥】c# AsyncLocal底层原理

dotNET跨平台  · 公众号  ·  · 2024-09-30 08:00
    

文章预览

hello,大家好,又到了橙子老哥的分享时间,希望大家一起学习,一起进步。 欢迎加入.net意社区,第一时间了解我们的动态,地址:ccnetcore.com 废话少说,我们直接开始 1、ThreadLocal与AsyncLocal 众所皆知,AsyncLocal是用于异步方法之间的数据隔离,而 ThreadLocal是用于多线程之间的数据隔离,需要明白,多线程 != 异步,多线程只是异步的一种实现,两者完全不是同一水平的东西,不能进行比较 关于他们的区别,相信大家看过很多的文章了,我总结放两个例子,不多赘述,带过即可 ```csharp AsyncLocal context = new AsyncLocal (); await Task.Run( async () => { context.Value = new Student { Name = $"张三" }; Console.WriteLine( $"值: {context.Value?.Name} ,ThreadId= {Thread.CurrentThread.ManagedThreadId} " ); await Task.Delay( 1000 ); Console.WriteLine( $"值: {context.Value?.Name} ,ThreadId= {Thread.CurrentThr ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览