Share via


안정성 경고

안정성 경고는 올바른 메모리 및 스레드 사용과 같은 라이브러리 및 응용 프로그램 안정성을 지원합니다.

단원 내용

규칙

설명

CA2000: 범위를 벗어나기 전에 개체를 삭제하십시오.

개체의 종료자가 실행되지 못하도록 하는 예외 이벤트가 발생할 수 있기 때문에 개체에 대한 모든 참조가 범위를 벗어나기 전에 개체를 명시적으로 삭제해야 합니다.

CA2001: 문제가 있는 메서드는 호출하지 마십시오.

멤버에서 잠재적 위험이나 문제가 있는 메서드를 호출합니다.

CA2002: 약한 ID를 가진 개체를 잠그지 마십시오.

응용 프로그램 도메인 경계를 가로질러 직접 액세스할 수 있는 개체를 약한 ID를 가진 개체라고 합니다. 약한 ID를 가진 개체에 대해 잠금을 가져오려고 시도하는 스레드는 같은 개체에 대해 잠금을 가진 다른 응용 프로그램 도메인의 스레드에 의해 차단될 수 있습니다.

CA2003: 파이버를 스레드로 취급하지 마십시오.

관리되는 스레드가 Win32 스레드처럼 취급됩니다.

CA2004: GC.KeepAlive에 대한 호출을 제거하십시오.

SafeHandle을 사용하는 방식으로 변환하는 경우 GC.KeepAlive(개체)에 대한 모든 호출을 제거해야 합니다. 이 경우 클래스에 종료자가 없지만 SafeHandle을 사용하여 OS 핸들을 종료하는 것으로 간주하므로 클래스에서 GC.KeepAlive를 호출할 필요가 없습니다.

CA2006: SafeHandle을 사용하여 네이티브 리소스를 캡슐화하십시오.

관리 코드에 IntPtr을 사용하는 것은 잠재적인 보안 및 안정성 문제를 나타냅니다. IntPtr을 사용할 때마다 SafeHandle 또는 유사한 기술을 대신 사용해야 하는지 여부를 결정하도록 검토해야 합니다.