使用VB.NET同时读写文本文件

使用VB.NET同时读写文本文件,vb.net,file-io,Vb.net,File Io,我有一个程序,必须读取代码条,然后将读取的代码写入文本文件。每30秒启动一个线程,该线程读取该文件以执行一些操作并删除已处理的行 我的问题是,当我从主线程读取文件时,它必须能够写入更多的行,并且对于每30秒启动的线程,它必须能够稍后读取 我真的没有找到任何样本,也不知道如何解决这个问题。有解决方案吗?当您拥有像此文件这样的共享可变资源,并且有多个单元访问它时,通常使用锁。锁可以存在于程序中,但也由许多文件系统提供。需要访问时锁定文件,不再需要时释放锁定。这样,在任何给定点上,您的程序只有一部分会

我有一个程序,必须读取代码条,然后将读取的代码写入文本文件。每30秒启动一个线程,该线程读取该文件以执行一些操作并删除已处理的行

我的问题是,当我从主线程读取文件时,它必须能够写入更多的行,并且对于每30秒启动的线程,它必须能够稍后读取


我真的没有找到任何样本,也不知道如何解决这个问题。有解决方案吗?

当您拥有像此文件这样的共享可变资源,并且有多个单元访问它时,通常使用锁。锁可以存在于程序中,但也由许多文件系统提供。需要访问时锁定文件,不再需要时释放锁定。这样,在任何给定点上,您的程序只有一部分会访问该文件。

与其使用文件作为待完成工作的备份存储,不如使用a作为“实时”数据的备份存储?您仍然可以使用文件作为日志,在项目排队时输入条目,并从队列中删除,以防您需要返回操作的历史记录。这样,文件只需附加到,而不需要读取,除非需要某种类型的回滚,例如,您的程序在不合适的时刻停止。

Marcus是对的,让多个线程同时访问一个资源是个坏主意。使用一个每次只允许访问一个线程的锁,你的电脑可以读取关闭该线程,然后非常快速地写入该文件。锁是第一个想法,但我意识到主线程必须优先于该文件。如果我没有错,如果我用一个线程锁定文件,另一个线程在第一个线程完成之前无法访问该文件,那么当主线程需要该文件时,它必须能够访问原始解决方案。它可能非常有用