我们有一台实验室设备,它始终将制表符分隔的记录写入 CSV 文件,而我的任务是编写一个应用程序来使用该数据。那部分很容易。但是,除此之外,我还负责寻找一种方法,通过使用数据绑定的 WPF 应用程序“实时”“观看”该文件。有两个优点我必须帮助使这项任务变得更容易。
写入 CSV 的记录以 8 秒的间隔发生。
在我需要观看 CSV 的总时间段内,文件本身几乎不会增长到大于 100mb - 如果那样的话。我见过的大多数文件都是20-30mb。
我的问题
有没有办法打开文件并保持“恒定”读取或监视其内容,还是我必须使用经典文件 IO 轮询来做到这一点?
我试图解决这个问题的思考过程
在修辞上,我想,“这个 CSV 与数据库有什么不同?” 但进一步的研究表明,EF 不能直接使用 CSV。如果实体框架中的 DbContext 可以与数据绑定一起使用来报告属性的变化,我是否也可以设置类似的东西来观察 CSV 变化?但无论我走哪条路,任何解决方案都会不断回到“轮询”。例如,我可以使用 Linq 定期访问 CSV 并将结果返回给属性,并且当属性的值发生更改(已将某些内容添加到 CSV)时,数据绑定会知道它并且应用程序可以相应地采取行动。是的,这听起来像投票。
综上所述
如果有一个更简单的解决方案可以利用 WPF/数据绑定或 EF(如果可能)或一些我没有想到或在这里提到的 .NET 类来回答我的问题或解决我的问题,我很想听听。