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

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

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

.Net Core 中的情况是否发生变化?它在 Linux 或 Mac OS 上是否做同样的事情 - 调用操作系统内核来创建一个全新的线程和 System.Threading.Thread 类的实例包装实际的操作系统线程?

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

最佳答案

在这两种情况下,CLR 都使用操作系统线程。

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

关于c# - System.Threading.Thread 在 .NET Core 中的含义与在 .NET Framework 中的含义相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53502797/

相关文章:

c# - Unity 的垃圾收集器——为什么是非分代和非压缩的?

c# - 如何比较两个xml节点?

c# - 如何使用.NET 创建选项卡式窗口?

multithreading - 如何让主(调用)线程等待子线程完成执行?

c++ - 由于对象的使用方式,我担心这段代码没有按照我想要的方式执行

c# - List<SelectListItem> 如何在 View 中安全地转换为 SelectList

c# - 在 ASP.NET MVC 中将 ViewData 传递给 ViewPage

.net - Mono 中的 RPC 选项? (WCF 替代品)

c# - 添加 Microsoft.Office.Interop.Excel 引用

ios - 了解同步和异步操作