다음을 통해 공유


PerformanceCounter.Increment 메서드

정의

효율적인 원자성 연산을 통해 연결된 성능 카운터를 하나씩 증가합니다.

public:
 long Increment();
public long Increment();
member this.Increment : unit -> int64
Public Function Increment () As Long

반환

증분 카운터 값입니다.

예외

카운터는 읽기 전용이므로 애플리케이션에서 증분할 수 없습니다.

-또는-

인스턴스가 성능 카운터와 올바르게 연결되지 않았습니다.

-또는-

전역 InstanceLifetime 공유 메모리를 Process 사용할 때 속성이 설정됩니다.

시스템 API에 액세스할 때 오류가 발생했습니다.

설명

사용자 지정 카운터에만 쓸 수 있습니다. 모든 시스템 카운터는 읽기 전용입니다.

메모

IncrementByDecrement 메서드는 Increment인터록을 사용하여 카운터 값을 업데이트합니다. 이렇게 하면 다중 스레드 또는 다중 프로세서 시나리오에서 카운터 값을 정확하게 유지할 수 있지만 성능 저하도 발생합니다. 연동 작업이 제공하는 정확도가 필요하지 않은 경우 최대 5배 성능 향상을 위해 속성을 직접 업데이트 RawValue 할 수 있습니다. 그러나 다중 스레드 시나리오에서는 카운터 값에 대한 일부 업데이트가 무시되어 부정확한 데이터가 발생할 수 있습니다.

메모

속성 값 InstanceLifetime 이고 성능 카운터 범주가 Process .NET Framework 버전 1.0 또는 1.1로 만들어진 경우 throw InvalidOperationException 됩니다. 이전 버전으로 만든 성능 카운터 범주는 전역 공유 메모리를 사용하며 값은 InstanceLifetime 이어야 Global합니다. .NET Framework 버전 1.0 또는 1.1에서 실행되는 애플리케이션에서 범주를 사용하지 않는 경우 범주를 삭제하고 다시 만듭니다.

적용 대상

스레드 보안

이 메서드는 스레드로부터 안전합니다.