Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CA1837:使用 Environment.ProcessId 而不是 Process.GetCurrentProcess().Id

CA1837:使用 Environment.ProcessId 而不是 Process.GetCurrentProcess().Id

作者头像
用户4268038
发布于 2022-02-19 10:56:28
发布于 2022-02-19 10:56:28
6060
举报
文章被收录于专栏:stcnbstcnb

规则 ID

CA1837

类别

“性能”

修复是中断修复还是非中断修复

非中断

原因

此规则会查找对 System.Diagnostics.Process.GetCurrentProcess().Id 的调用,并建议改用 System.Environment.ProcessId,因为这样更高效。

规则说明

System.Diagnostics.Process.GetCurrentProcess().Id 成本较高:

它分配 Process 实例,通常只为了获取 Id。

需要处置 Process 实例,这会影响性能。

很容易忘记调用 Process 实例上的 Dispose()。

如果除了 Id 之外没有其他内容使用 Process 实例,那么随着引用的类型图增加,链接大小也会不必要的增长。

发现或查找此 API 有点困难。

System.Environment.ProcessId 可避免上述所有情况。

备注

从 .NET 5.0 开始可以使用规则 CA1837。

如何解决冲突

可以手动解决冲突,或者在某些情况下,使用快速操作来修复 Visual Studio 中的代码。

以下两个代码片段显示了规则冲突及其解决方法:

using System.Diagnostics;

class MyClass

{

void MyMethod()

{

int pid = Process.GetCurrentProcess().Id;

}

}

Imports System.Diagnostics

Class MyClass

Private Sub MyMethod()

Dim pid As Integer = Process.GetCurrentProcess().Id

End Function

End Class

using System.Diagnostics;

class MyClass

{

void MyMethod()

{

int pid = System.Environment.ProcessId;

}

}

Imports System.Diagnostics

Class MyClass

Private Sub MyMethod()

Dim pid As Integer = System.Environment.ProcessId

End Function

End Class

提示

Visual Studio 中为此规则提供了代码修补程序。 若要使用它,请将光标置于冲突上,然后按 Ctrl+。 (句点)。 从显示的选项列表中选择“使用‘Environment.ProcessId’而不是‘Process.GetCurrentProcess().Id’”。

何时禁止显示警告

如果你不关心不必要的分配和最终处置 Process 实例造成的性能影响,可禁止显示此规则的冲突警告。

另请参阅

性能规则

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
IDEA 配置 maven 完美解决方案
很久之前就配置的maven,最近使用的时候又出现问题了,我把项目用 IDEA 打开,打算使用 maven 将我需要的依赖自动导入,但是它一直卡在那里,加载了半天依赖也没导进去。
wsuo
2020/07/31
1.4K0
IDEA 配置 maven 完美解决方案
Maven构建项目速度太慢的解决办法
问题描述 通过idea新建maven项目,参数设置好后,idea自动构建maven项目时,速度很慢。 参数设置如图: 执行时间如下图: Total time为8:49,花了将近十分钟时间。 连续尝试了
程序员十三
2018/03/15
2.4K0
Maven构建项目速度太慢的解决办法
怎么 1 秒完成 Maven 项目构建?(来长长见识)
点击关注公众号,Java干货及时送达 在实际开发中,我们通常会用到maven的archetype插件(原型框架)来生成项目框架。 但是无奈,创建时,总会卡在: [INFO] Generating project in Batch mode 等很久才构建完,有时还会报错,导致构建失败! 不多废话了,直接上解决办法吧! 解决办法1 在创建Maven项目时加上archetypeCatalog=internal参数,点击“+”添加参数archetypeCatalog=internal。 如下: 解决办法2
Java技术栈
2022/03/08
4960
IDEA配置Maven
配置好本地仓库,中央仓库这里是(阿里云)不然用的是国外的,速度很慢,在本地仓库里的依赖不够多的时候,大部分时候还得靠远程仓库;
久绊A
2024/03/01
2510
三招破idea创建maven项目速度慢问题
Intellij idea是一款非常强大的编辑器,可以很方便地帮我们创建maven项目,有用过的同学应该都深有体会,但我们经常会遇到一个困扰。
良月柒
2019/03/20
9.7K0
三招破idea创建maven项目速度慢问题
从0到1教你学Maven(全网最详细)(五)IDEA 集成 Maven,一步一步带你集成,以后就不需要配置了
在idea中设置maven ,让idea和maven结合使用。 idea中内置了maven ,一般不使用内置的, 因为用内置修改maven的设置不方便。 使用自己安装的maven, 需要覆盖idea中的默认的设置。让idea指定maven安装位置等信息
一写代码就开心
2021/03/02
6700
从0到1教你学Maven(全网最详细)(五)IDEA 集成 Maven,一步一步带你集成,以后就不需要配置了
老问题了:idea中使用maven archetype新建项目时卡住.md
作为一个后端Java打工人,idea就是最重要的打饭工具。创建项目,熟悉吧,但是,这么多年下来,因为idea换了版本,电脑换了等等,我还是时不时遇到根据maven archetype新建maven项目卡住。没错,我说的就是下面这样的场景:
低级知识传播者
2023/08/30
1.7K0
老问题了:idea中使用maven archetype新建项目时卡住.md
idea中如何配置maven项目_idea配置maven环境
一、使用步骤 1.在Idea中配置maven (1)、打开Idea,点击File,然后点击Settings,进入设置,或者直接按Ctrl+Alt+S进入设置
全栈程序员站长
2022/11/09
2K0
idea中如何配置maven项目_idea配置maven环境
解决IDEA快速构建Maven工程报错:No archetype found in remote catalog. Defaulting to internal catalog
VM Options ——> -DarchetypeCatalog=internal
兮动人
2021/06/11
5.6K0
解决IDEA快速构建Maven工程报错:No archetype found in remote catalog. Defaulting to internal catalog
Intellij IDEA 2021 Maven 配置指南「建议收藏」
Maven是Java一个不错的项目管理工具,但在Intellij IDEA软件中配置它却并非一件省心的事情,不少小萌新会配置失败。之所以要配置Maven,是因为Maven的中央仓库在国外,因此在下载依赖jar包的时候会非常缓慢,所以,我打算分享这篇教程,帮助萌新们在Intellij IDEA中配置好Maven~
全栈程序员站长
2022/09/02
3.5K0
Intellij IDEA 2021 Maven 配置指南「建议收藏」
2022新版版本IDEA创建Maven项目卡死-Bug
在使用新版本IDEA的时候,我是2022.1版本,创建Maven项目时,我发现有时候IDEA会卡死。
JanYork_简昀
2022/06/30
6K0
2022新版版本IDEA创建Maven项目卡死-Bug
Maven的安装与配置以及注意事项
目录 1.Maven的简单介绍  2. 什么是自动构建工具? 3. 常用的自动构建工具 4. Maven安装与配置 5. Maven的使用1:创建java项目 6. Maven的使用2:创建web项目 7. maven打包: 8. 什么是POM 9.注意事项 ---- 1.Maven的简单介绍  Apache Maven是个项目管理和自动构建工具,基于项目对象模型(POM)的概念。 作用:完成项目的相关操作,如:编译,构建,单元测试,安装,网站生成和基于Maven部署项目。  2. 什么是自动构建
天蝎座的程序媛
2022/11/18
5660
maven
下载地址:http://maven.apache.org/download.cgi 安装:直接解压就可以
JokerDJ
2023/11/27
2950
maven
Eclipse使用Maven创建Web时错误:Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webap
Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webapp:RELEASE from any of the configured repositories. Could not resolve artifact org.apache.maven.archetypes:maven-archetype-webapp:pom:RELEASE Failed to resolve version for org.apache.maven.archetypes:maven-archetype-webapp:pom:RELEASE: Could not find metadata org.apache.maven.archetypes:maven-archetype-webapp/maven-metadata.xml in local (C:\Users\liujunguang\.m2\repository) Failed to resolve version for org.apache.maven.archetypes:maven-archetype-webapp:pom:RELEASE: Could not find metadata org.apache.maven.archetypes:maven-archetype-webapp/maven-metadata.xml in local (C:\Users\liujunguang\.m2\repository)
全栈程序员站长
2022/09/15
9050
Eclipse使用Maven创建Web时错误:Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webap
入门maven?本文足矣
以前开发的时候,如果A项目需要某个jar包,可能去网上搜索下载jar包,然后复制粘贴在开发对应的位置,如果B项目也需要这个jar包,那么同样需要再次手动复制粘贴到对应的位置。
用户8902830
2022/09/22
7030
入门maven?本文足矣
maven学习系列——(三)maven项目的创建
这一篇大概会整理和总结到有如下知识点: (1):maven的使用入门一些命令 (2):用命令创建项目 (3):使用IDE集成工具创建项目–Eclipse和idea
全栈程序员站长
2022/07/19
2340
Idean中的Maven
③实际项目 在实际项目中整合第三方框架,Web工程中除了Java程序和JSP页面、图片等静态资源之外,还包括第三方框架的jar包以及各种各样的配置文件。所有这些资源都必须按照正确的目录结构部署到服务器上,项目才可以运行。 所以综上所述:构建就是以我们编写的Java代码、框架配置文件、国际化等其他资源文件、JSP页面和图片等静态资源作为“原材料”,去“生产”出一个可以运行的项目的过程。 那么项目构建的全过程中都包含哪些环节呢?
用户10196776
2022/11/22
7950
Idean中的Maven
Idea创建maven项目流程、修改默认配置、及注意事项
windows7+jdk1.7.0_80+tomcat8.5.41+maven3.0.5+idea2017.3.6
秋雨
2019/07/22
11.5K0
Idea创建maven项目流程、修改默认配置、及注意事项
十二、Maven项目模板「建议收藏」
Maven提供用户,使用原型的概念,不同类型的项目模板(以数字614)是一个非常大的列表。 Maven帮助用户快速开始使用以下命令创建新的Java项目
全栈程序员站长
2022/09/09
7030
十二、Maven项目模板「建议收藏」
maven 环境配置详细步骤[通俗易懂]
1、首先去官网下载maven安装包:http://maven.apache.org/download.cgi
全栈程序员站长
2022/08/28
2.4K0
maven 环境配置详细步骤[通俗易懂]
推荐阅读
相关推荐
IDEA 配置 maven 完美解决方案
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档