System.Threading.Thread在.NET Core中的含义与在.NET Framework中的含义相同吗?

时间:2018-11-27 15:21:07

标签: c# .net multithreading cross-platform .net-standard

.Net Framework创建过程中,Start()的实际调用System.Threading.Thread 导致调用操作系统,基于 Windows的系统,内核为调用者进程提供全新的线程。

.Net Core中的情况会发生变化吗?它在Linux或Mac OS上是否做同样的事情-调用OS内核以创建全新的线程,而System.Threading.Thread类的实例包装实际的OS线程?

如果不是,那么我如何描述System.Threading.Thread跨平台世界中的.NET Core是什么?

1 个答案:

答案 0 :(得分:1)

在两种情况下,CLR都在使用OS线程。

要启动新线程,CLR调用CreateThread。在Windows上,这直接映射到Win32 API。在Unix上,它经过an indirection,最终调用pthread_create