Поделиться через


BlockingCollection<T>.Take Метод

Определение

Удаляет элемент из BlockingCollection<T>.

Перегрузки

Take()

Удаляет элемент из BlockingCollection<T>.

Take(CancellationToken)

Удаляет элемент из BlockingCollection<T>.

Take()

Исходный код:
BlockingCollection.cs
Исходный код:
BlockingCollection.cs
Исходный код:
BlockingCollection.cs

Удаляет элемент из BlockingCollection<T>.

public:
 T Take();
public T Take ();
member this.Take : unit -> 'T
Public Function Take () As T

Возвращаемое значение

T

Элемент, удаленный из коллекции.

Исключения

Объект BlockingCollection<T> удален.

Базовая коллекция была изменена за пределами этого BlockingCollection<T> экземпляра или BlockingCollection<T> является пустой и помечена как завершенная в отношении дополнений.

Комментарии

Вызов может блокироваться Take , пока элемент не станет доступен для удаления.

Порядок, в котором удаляется элемент, зависит от типа коллекции, использованного для создания экземпляра BlockingCollection<T>. При создании объекта BlockingCollection<T> можно указать тип коллекции для использования. Например, можно задать объект ConcurrentQueue<T> для использования принципа "первым поступил — первым обслужен", или объект ConcurrentStack<T> для использования принципа "последним поступил — первым обслужен". Использовать можно любой класс коллекции, реализующий интерфейс IProducerConsumerCollection<T>. Тип коллекции, используемый в классе BlockingCollection<T> по умолчанию — это ConcurrentQueue<T>.

См. также раздел

Применяется к

Take(CancellationToken)

Исходный код:
BlockingCollection.cs
Исходный код:
BlockingCollection.cs
Исходный код:
BlockingCollection.cs

Удаляет элемент из BlockingCollection<T>.

public:
 T Take(System::Threading::CancellationToken cancellationToken);
public T Take (System.Threading.CancellationToken cancellationToken);
member this.Take : System.Threading.CancellationToken -> 'T
Public Function Take (cancellationToken As CancellationToken) As T

Параметры

cancellationToken
CancellationToken

Маркер, который можно использовать для отмены операции "take".

Возвращаемое значение

T

Элемент, удаленный из коллекции.

Исключения

Объект BlockingCollection<T> удален.

Базовая коллекция была изменена за пределами этого BlockingCollection<T> экземпляра или BlockingCollection<T> является пустой и помечена как завершенная в отношении дополнений.

Комментарии

Вызов может блокироваться Take до тех пор, пока элемент не будет доступен для удаления или маркер не будет отменен.

Порядок, в котором удаляется элемент, зависит от типа коллекции, использованного для создания экземпляра BlockingCollection<T>. При создании объекта BlockingCollection<T> можно указать тип коллекции для использования. Например, можно задать объект ConcurrentQueue<T> для использования принципа "первым поступил — первым обслужен", или объект ConcurrentStack<T> для использования принципа "последним поступил — первым обслужен". Использовать можно любой класс коллекции, реализующий интерфейс IProducerConsumerCollection<T>. Тип коллекции, используемый в классе BlockingCollection<T> по умолчанию — это ConcurrentQueue<T>.

См. также раздел

Применяется к