我有一个线程正在将项目添加到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);
}
}
您甚至可以使用此网站