gpt4 book ai didi

c# - 我如何在没有 .remove 的情况下从列表中删除 "remove"项?

转载 作者:太空宇宙 更新时间:2023-11-03 19:00:42 37 4
gpt4 key购买 nike

我有一个由一个线程填充的 byte[] 列表,然后我有另一个线程正在从该列表中读取并通过网络发送项目。 enter image description here

每次我读取线程 2 中的项目时,我都想将其从内存中清除。但是因为我正在使用线程,如果我使用 .remove 我将不得不处理更改列表的索引,并且在我这样做时不让 thread1 写入它。所以,所以我不会与列表的索引发生冲突,我只是将我使用完的项目更改为 null。执行此操作的最佳方法是什么,以免浪费内存空间?

最佳答案

听起来您想使用 ConcurrentQueue相反。

ConcurrentQueue 是线程安全的先进先出集合,因此第一个线程会将项目插入队列 Enqueue而第二个线程将尝试使用 TryDequeue 从该队列中读取项目.

关于c# - 我如何在没有 .remove 的情况下从列表中删除 "remove"项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36482420/

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