74、.NET 多线程编程全面解析

.NET 多线程编程全面解析

1. 多线程方法调用与环境事务

在方法调用过程中使用多个不同线程时,使用环境事务或依赖于线程本地状态的任何内容都不是一个好主意。许多 .NET 特性,原本可能以为会使用线程本地存储,实际上却将信息与执行上下文相关联。例如,ASP.NET Core 框架的静态 HttpContext.Current 属性,它返回与当前线程正在处理的 HTTP 请求相关的对象。执行上下文更加灵活,因为在需要时它可以跨线程跳转。

2. 使用多线程的主要方式

为了使上述问题变得相关,我们需要使用多线程。使用多线程主要有四种方式:
1. 代码在框架中运行,框架会为你创建多个线程,例如 ASP.NET Core。
2. 使用某些基于回调的 API。
3. 显式创建新线程。
4. 使用 .NET 线程池。

3. Thread 类

Thread 类(定义在 System.Threading 命名空间中)代表一个 CLR 线程。你可以使用 Thread.CurrentThread 属性获取正在执行你代码的线程的 Thread 对象引用。如果你想引入多线程,可以构造一个新的 Thread 对象。

新线程需要知道启动时应该运行什么代码,因此你必须提供一个委托,线程启动时将调用委托所引用的方法。线程将一直运行,直到该方法正常返回,或者允许异常传播到堆栈顶部(或者线程通过操作系统的任何机制被强制终止)。 </

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值