如何在.NET Core 2程序上使用特定于OS的过程?

我真的很想使用.NET Core 2.x在C#中编写多平台程序。我已经在进行实验,可以使用System.Diagnostics.Process监视和控制流程。

也就是说,我相信我已经在研究一个关键的用例,因为它可能很容易要求.NET Core仍然无法向开发人员公开的系统特定过程。 。在没有任何实际案例的情况下,这仍然是一个令人担忧的问题,但是我正在考虑执行以下任务:

  • 获取物理+逻辑处理器的数量(在Windows one should use WMI上,我不相信它在.NET Core中可用于在MacOS / Linux上执行相同的操作)。
  • 创建崩溃进程的内存转储(可能需要特定于OS的调用?)
  • 通常情况下,通常可以通过特定于操作系统的C ++调用来完成的任何事情

所以我想知道如何解决这些“未来”问题。 .NET Core / C#仍然是满足我需求的有效解决方案吗?还是有一种方法可以在.NET Core 2.x项目上调用特定于操作系统的调用?

注意:出于外部原因,我目前仅限使用.NET Core 2.x分支,而不是3.x。

wbenit 回答:如何在.NET Core 2程序上使用特定于OS的过程?

除非您不打算使用任何MS GUI框架(Windows窗体,WPF,UWP),否则.NET Core在Windows以外的平台上也可以是一种灵活且可行的选择。

一个人可以使用p/invoke来访问应该与.NET Core running on Unix-like systems too一起使用的本机方法,尽管每个操作系统上仅系统特定的库都可用。

RuntimeInformation.IsOSPlatform方法和conditional compilation symbols也可用于为特定操作系统分支代码。

其他人已经有answer关于如何从.NET Core应用程序获取转储的信息。

本文链接:https://www.f2er.com/3124820.html

大家都在问