我有两个应用程序,一个向文件写入行,另一个在写入文件时读取。问题来自于将文件视为队列而非流。按行书写。使用StreamReader::ReadLine进行读取。问题是,我只得到了行的一部分,所以解析失败了。解决这个问题的最佳方法是什么?
.NET Framework提供了一个PipeStream和派生类,用于作为客户端服务器的本地机器上的进程间通信,使用内存中的流,而不是像Unix中那样使用信号量和排队管道来完成的文件。
如果您需要一个进程来填充一个文件,您可以使用这样的流管道将写入文件后的新数据发送给另一个进程。
例如,在服务器过程中:
void ProcessNewData(string /* or any type needed */ content)
{
WriteNewDataToFile(content);
SendNewDataToClient(content);
}
这是一篇文章,除了微软文档之外,还解释了一些事情:
带命名管道的全双工异步读/写(CodeProject(
您还可以使用任何您想要的进程间技术:远程处理、WCF。。。
进程间通信(C#Vault(