当我的程序运行时,它会在一条消息中接收带有Id和数据的消息.
我想为每个Id创建一个新列表,我可以存储来自该Id的数据.问题是我不知道在程序运行之前我会收到多少Id.我唯一知道的是它很多.所以我不知道是否可能或我应该如何做到这一点.这是扫管笏我基本上是想做:
if (!(idlist.Contains(id))){
idlist.Add(id);
List<string> id.ToString() = new List<string>();}
Run Code Online (Sandbox Code Playgroud) 我有一个程序,从非托管代码接收每秒大约500到700次的数据.这些数据中的一些是有用的,需要进行处理,其中一些是无用的,并立即得到反感.为了确定收到的数据是否有用,我使用了一个字符串列表.我的问题/问题是:当我使用List上的锁来删除部分或全部条目时,我会得到一大堆等待搜索List的线程吗?
因为删除整个列表或它的一部分不是连续使用我现在使用静态布尔值.当我开始删除时,我将布尔值设置为false,并且在搜索列表之前,所有数据都会被拒绝.当我完成后,我将布尔值恢复为true.这是一个糟糕的解决方法还是有更好的解决方案?(我也问这个,因为此时测试非常耗时)
编辑
该程序用于检查列表中的字符串是否正确.非托管代码发送数据,这发生在新线程上.如果数据有用,则会显示该数据,用户可以对此进行验证.如果数据结果显示但没有用,则用户可以从列表中删除主线程上发生的字符串.