BlockingCollection<T>.Take 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
從 BlockingCollection<T> 移除項目。
多載
Take() |
從 BlockingCollection<T> 移除項目。 |
Take(CancellationToken) |
從 BlockingCollection<T> 移除項目。 |
Take()
從 BlockingCollection<T> 移除項目。
public:
T Take();
public T Take ();
member this.Take : unit -> 'T
Public Function Take () As T
傳回
已從集合中移除的專案。
例外狀況
基礎集合已在此實例之外 BlockingCollection<T> 修改,或 BlockingCollection<T> 是空的,而且已標示為已完成,與新增項目有關。
備註
呼叫 Take 可能會封鎖,直到專案可供移除為止。
項目的移除順序取決於用來建立 BlockingCollection<T> 執行個體的集合型別。 建立 BlockingCollection<T> 物件時,您可以指定要使用的集合型別。 例如,您可以針對先進先出 (FIFO) 行為指定 ConcurrentQueue<T> 物件,或針對後進先出 (LIFO) 行為指定 ConcurrentStack<T> 物件。 您可以使用任何可實作 IProducerConsumerCollection<T> 介面的集合類別。 BlockingCollection<T> 的預設集合類型為 ConcurrentQueue<T>。
另請參閱
適用於
Take(CancellationToken)
從 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
可用來取消「採取」作業的令牌。
傳回
已從集合中移除的專案。
例外狀況
基礎集合已在此實例之外 BlockingCollection<T> 修改,或 BlockingCollection<T> 是空的,而且已標示為已完成,與新增項目有關。
備註
呼叫 Take 可能會封鎖,直到專案可供移除或取消令牌為止。
項目的移除順序取決於用來建立 BlockingCollection<T> 執行個體的集合型別。 建立 BlockingCollection<T> 物件時,您可以指定要使用的集合型別。 例如,您可以針對先進先出 (FIFO) 行為指定 ConcurrentQueue<T> 物件,或針對後進先出 (LIFO) 行為指定 ConcurrentStack<T> 物件。 您可以使用任何可實作 IProducerConsumerCollection<T> 介面的集合類別。 BlockingCollection<T> 的預設集合類型為 ConcurrentQueue<T>。