如何在C#中清除/清空BlockingCollection

我有一个线程正在将项目添加到BlockingCollection。我想清除BlockingCollection。有人可以帮我吗?

wuwuwuwuwuwuuu 回答:如何在C#中清除/清空BlockingCollection

您可能需要从BlockingCollection中读取所有项目并将其分配给Discards

while (collection.TryTake(out _)){}
,

可能使用GetConsumingEnumerable的过载CancellationToken;,然后,如果生产方出现任何问题,则可以取消使用方。

您可以使用它

 public static void Clear<T>(this BlockingCollection<T> blockingCollection)
{
    if (blockingCollection == null)
    {
        throw new ArgumentNullException("blockingCollection");
    }

    while (blockingCollection.Count > 0)
    {
        T item;
        blockingCollection.TryTake(out item);
    }
}

您甚至可以使用此网站

Use ForEach to Remove Items in a BlockingCollection

本文链接:https://www.f2er.com/3124760.html

大家都在问