ConcurrentStack<T>.PushRange Method (T[], Int32, Int32)

Inserts multiple objects at the top of the ConcurrentStack<T> atomically.

Namespace:  System.Collections.Concurrent
Assembly:  mscorlib (in mscorlib.dll)

public void PushRange(
	T[] items,
	int startIndex,
	int count


Type: T[]

The objects to push onto the ConcurrentStack<T>.

Type: System.Int32

The zero-based offset in items at which to begin inserting elements onto the top of the ConcurrentStack<T>.

Type: System.Int32

The number of elements to be inserted onto the top of the ConcurrentStack<T>.


items is a null reference (Nothing in Visual Basic).


startIndex or count is negative. Or startIndex is greater than or equal to the length of items.


startIndex + count is greater than the length of items.

When adding multiple items to the stack, using PushRange is a more efficient mechanism than using Push one item at a time. Additionally, PushRange guarantees that all of the elements will be added atomically, meaning that no other threads will be able to inject elements between the elements being pushed. Items at lower indices in the items array will be pushed before items at higher indices.

For a code example, see ConcurrentStack<T>.

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4

.NET Framework Client Profile

Supported in: 4

Portable Class Library

Supported in: Portable Class Library

.NET for Windows Store apps

Supported in: Windows 8

.NET for Windows Phone apps

Supported in: Windows Phone 8.1

Windows Phone 8.1, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
© 2014 Microsoft