【发布时间】:2019-05-25 20:26:52
【问题描述】:
参考以下帖子,这使人们相信 .NET 任务在不涉及本机操作系统线程的情况下执行。这是真的吗?
Difference between Task (System.Threading.Task) and Thread
编辑
在查看重复问题时,我找不到直接解决实例化 .NET 任务类最终将在本机操作系统线程上执行的问题的答案。它们指的是线程,但要么不区分托管线程和本机 OS 线程,要么仅指托管线程。唯一可以重复的是我自己对其中一个问题的回答。
但在挖掘自己的过程中,似乎 .NET 没有“魔法”可以避免本地操作系统线程。没有对 Windows 内核进行任何更改以允许这样做。这与我几十年前的操作系统经验一致。简而言之,没有任何人可以编写的应用程序代码不运行在原生 Windows 操作系统线程上。
About Processes and Threads Managed Threading
还有:
Windows Kernel Internals Process Architecture
【问题讨论】:
-
所有代码都在本机操作系统线程上运行。任务不使用专用本机线程。
-
SLaks 是正确的。
标签: c# .net multithreading task task-parallel-library