Как я могу читать строки из живого файла? - PullRequest
0 голосов
/ 12 июля 2020

У меня есть 2 приложения, одно записывает строки в файл, другое читает по мере записи файла. Проблема возникает из-за того, что файл рассматривается как очередь, а не как поток. написание в строке. чтение с StreamReader :: ReadLine. Проблема в том, что я получаю только часть строки, поэтому синтаксический анализ не выполняется. Как лучше всего решить эту проблему?

1 Ответ

1 голос
/ 12 июля 2020

. NET Framework предлагает PipeStream и производные классы для межпроцессного взаимодействия на локальном компьютере в качестве клиент-сервер, используя поток в памяти, а не файл, как в Unix, как может выполняется с использованием семафоров и каналов с очередями.

Если вам нужен один процесс, заполняющий файл, вы можете сделать так, чтобы он отправлял новые данные после записи в файл другому процессу, используя такой потоковый канал.

Например, в серверном процессе:

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

Вот статья, которая объясняет вещи в дополнение к документации Microsoft:

Полнодуплексное асинхронное чтение / запись с использованием именованных каналов (CodeProject)

Вы также можете использовать любую межпроцессную технологию, которую хотите: удаленное взаимодействие, WCF ...

Межпроцессное взаимодействие (C# Vault)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...