提升List带锁紧,使其耐压

本文关键字:List 提升 | 更新日期: 2023-09-27 17:50:52

我有一个像这样的字符串列表

   private object = new object();
    public List<string> list {
     get{
           lock(object){
            return _list;
           }
       }
    }
    List<string> _list = new List<string>();
    //some event which trigger's 1000 in a second
    public void  event(object sender, string e){
              list.add(e);
    }
    public void processList(){
       //process the list items one by one  and remove it.      
    }
    public void writeOnDisk(){
             //write list on Disk
    }

现在我的问题是列表处理速度比填充慢。我想把列表备份到磁盘上,以防应用程序崩溃或系统故障,但担心如果写列表磁盘会减慢速度表演我不想丢失数据,即使是一个项目。在这方面你能给我建议最好的方法吗?

提升List<T>带锁紧,使其耐压

在。net 4.0或更高版本中使用线程安全集合。对于您的情况,可以考虑使用ConcurrentQueue<T>

.NET中的线程安全集合

瓶颈之一应该是写文件的I/O,您可以考虑批处理而不是逐行写

相关文章: