Table of Contents

ConcurrentCircularBuffer<T>.Enumerator Struct

Definition

Namespace
Bodu.Collections.Generic.Concurrent
Assembly
Bodu.Collections.Concurrent.dll
Package
Bodu.Collections.Concurrent 1.0.0
Source
ConcurrentCircularBuffer{T}.Enumerator.cs

Provides a snapshot-based enumerator for ConcurrentCircularBuffer<T> that iterates over a stable point-in-time copy of the buffer's contents.

public struct ConcurrentCircularBuffer<T>.Enumerator : IEnumerator<T>, IEnumerator, IDisposable
Implements
Inherited Members
Extension Methods

Remarks

The enumerator captures a snapshot of the buffer's elements at the time of construction by calling ToArray(). All subsequent iteration operates over this static copy and is unaffected by concurrent enqueue, dequeue, or eviction operations on the originating buffer.

Because the snapshot is taken eagerly, creating the enumerator allocates a backing array proportional to the number of elements present at that moment. This is the same allocation that a direct call to ToArray() would produce.

Properties

Current

Gets the element in the collection at the current position of the enumerator.

public readonly T Current { get; }

Property Value

T

The element in the collection at the current position of the enumerator.

Methods

Dispose()

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

public readonly void Dispose()

MoveNext()

Advances the enumerator to the next element of the collection.

public bool MoveNext()

Returns

bool

true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection.

Exceptions

InvalidOperationException

The collection was modified after the enumerator was created.

Reset()

Sets the enumerator to its initial position, which is before the first element in the collection.

public void Reset()

Exceptions

InvalidOperationException

The collection was modified after the enumerator was created.

NotSupportedException

The enumerator does not support being reset.

Explicit Interface Implementations

IEnumerator.Current

Gets the element in the collection at the current position of the enumerator.

readonly object IEnumerator.Current { get; }

Returns

object

The element in the collection at the current position of the enumerator.

Applies to

ProductVersions
.NET8, 10