我基本上正在寻找一个图像集合的容器,这些图像是从相机中在线程中获取的。由于ConcurrentQueue是线程安全的,所以我想使用它。但是在调试我的代码时,我发现了此文章所说的内容。
如果元素很小,您可能永远不会注意到这一点。然而,如果元素保持大量资源(例如每个元素都是巨大的图像位图),则有可能会看到其影响(一种解决方法是排队包装对象,例如使用
就我所看到的,
如果元素很小,您可能永远不会注意到这一点。然而,如果元素保持大量资源(例如每个元素都是巨大的图像位图),则有可能会看到其影响(一种解决方法是排队包装对象,例如使用
ConcurrentQueue<StrongBox<T>>
而不是ConcurrentQueue<T>
,并且在包装器被出列后将包装器对T值的引用设置为null)。就我所看到的,
StrongBox
是原始值的一种包装器。这是否意味着我必须存储另一个图像集合?
我正在寻找关于ConcurrentQueue<StrongBox<T>>
的使用方法或示例。我在谷歌上只找到了这段代码。