首页 > 解决方案 > 如何从实时文件中读取行?

问题描述

我有 2 个应用程序,一个将行写入文件,另一个在写入文件时读取。问题来自将文件视为队列而不是流。写作是每行。使用 StreamReader::ReadLine 阅读。问题是我只得到了部分行,所以解析失败。解决此问题的最佳方法是什么?

标签: c#

解决方案


.NET Framework 为本地计算机上的进程间通信提供了PipeStream和派生类,作为客户端-服务器,使用内存中的流,而不是像 Unix 中那样使用信号量和排队管道完成的文件。

如果您需要一个进程填充文件,您可以在将文件写入文件后使用此类流管道将新数据发送到另一个进程。

例如,在服务器进程中:

void ProcessNewData(string /* or any type needed */ content)
{
  WriteNewDataToFile(content);
  SendNewDataToClient(content);
}

除了 Microsoft 文档之外,还有一篇文章解释了一些事情:

使用命名管道的全双工异步读/写 (CodeProject)

您还可以使用任何您想要的进程间技术:Remoting、WCF...

进程间通信(C# Vault)


推荐阅读