如何获取当前的ProcessID?
使用 .NET Framework 从您自己的应用程序中获取当前进程 ID 的最简单方法是什么?
What's the simplest way to obtain the current process ID from within your own application, using the .NET Framework?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
获取对当前进程的引用并使用 System.Diagnostics 的 Process.Id 属性:
Get a reference to the current process and use
System.Diagnostics
'sProcess.Id
property:即将推出的 .NET 5 引入了
Environment.ProcessId
,它应该优于Process.GetCurrentProcess().Id
,因为它避免了分配和处置 Process 对象的需要。https://devblogs.microsoft.com/dotnet/performance-improvements- in-net-5/ 显示了一个基准测试,其中
Environment.ProcessId
只需 3 纳秒,而使用Process.GetCurrentProcess().Id
则需要 68 纳秒。The upcoming .NET 5 introduces
Environment.ProcessId
which should be preferred overProcess.GetCurrentProcess().Id
as it avoids allocations and the need to dispose the Process object.https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-5/ shows a benchmark where
Environment.ProcessId
only takes 3ns instead of 68ns withProcess.GetCurrentProcess().Id
.或者,由于
Process
类是IDisposable
,并且进程 ID 在应用程序运行时不会更改,因此您可以拥有一个具有静态属性的帮助器类:Or, since the
Process
class isIDisposable
, and the Process ID isn't going to change while your application's running, you could have a helper class with a static property: