gpt4 book ai didi

c# - 什么情况下 ConcurrentBag.TryTake() 会失败?

转载 作者:可可西里 更新时间:2023-11-01 08:47:34 25 4
gpt4 key购买 nike

我正在考虑使用 ConcurrentBag在我正在编写的程序中,但是我似乎找不到关于 TryTake 的足够文档.

我知道该方法可能会失败,但我找不到关于可能发生这种失败的情况的解释,以及失败后集合将处于什么状态。

如果只是在另一个线程已经删除该项目的情况下,那么我不在乎,但我真的无法承受的是我想要删除的项目在调用后仍然在集合中。

这有可能吗?

最佳答案

根据文档,如果没有可拿的元素,即包是空的,它会返回 false。因为它是一个线程安全的集合,所以应该没有关于“空”和多线程的问题。

您必须考虑结果 T 的文档以及返回值:

result T: When this method returns, result contains the object removed from the ConcurrentBag or the default value of T if the bag is empty.

Return: true if an object was removed successfully; otherwise, false.

http://msdn.microsoft.com/en-us/library/dd287255.aspx

关于c# - 什么情况下 ConcurrentBag.TryTake() 会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4614126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com