.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 对象。
新线程需要知道启动时应该运行什么代码,因此你必须提供一个委托,线程启动时将调用委托所引用的方法。线程将一直运行,直到该方法正常返回,或者允许异常传播到堆栈顶部(或者线程通过操作系统的任何机制被强制终止)。 </
超级会员免费看
订阅专栏 解锁全文
1201

被折叠的 条评论
为什么被折叠?



