c# - .NET 框架中的线程生命周期

标签 c# .net multithreading thread-state

.NET 框架中线程的状态在 this link 中有解释。 .

我最近在一个网站上看到了这张照片,我想到了几个问题:

enter image description here

  1. 操作系统中的线程生命周期与 .NET 框架中的线程生命周期并不完全一致。有人可以提供与操作系统中的状态与 .NET 框架相匹配的资源吗?

  2. 我们在 .NET 框架中没有称为 Blocked 的状态。如果线程发出 I/O 请求,它会处于什么状态?

  3. Aborted 状态的目的是什么?当线程调用Abort()方法时,会进入AbortRequested状态,线程响应中止请求后,会进入Stopped状态强>状态。那么Aborted状态的作用是什么呢?

最佳答案

如果线程的执行已被其中一个同步原语(例如锁或互斥体)挂起,则该线程将被阻塞。根据定义,在给定时刻执行有用工作的任何线程在那一刻都不会被阻塞。

AbortRequested/Stopped 循环让线程有机会执行有序关闭、释放获取的资源并执行其他清理任务。

http://www.albahari.com/threading/

关于c# - .NET 框架中的线程生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8966636/

相关文章:

c# - 将托管线程上的模拟 token 传递给非托管线程

c# - 如何使用 .net 匹配 Unicode 字符?

.net - IEnumerable<T> : how is it performance? 上的扩展方法

c# - 从 XmlReader 获取流

node.js - 在 NodeJS 中异步使用同步进程

java - 不频繁写入和频繁读取

c# - godot 上 GetComponent 的类似替代方案

c# - 在 C# 中实现链式事件的最佳方式是什么

c# - 如何避免在多个文件中有条件地使用相同的命名空间

c# - 带有参数的 VSTemplate TargetFolderName