Сначала я пишу в NamedPipeClientStream, затем я читаю из него.Это в основном работает.Но я не получаю правильную обработку ресурсов для StreamReader и StreamWriter.
Подход 1
using (StreamWriter sw = new StreamWriter(pipeStream))
{
// ...
using (StreamReader sr = new StreamReader(pipeStream))
{
// ...
}
}
Утилизация sw
завершается неудачно, потому что потокуже был закрыт.
Подход 2
using (StreamWriter sw = new StreamWriter(pipeStream))
{
// ...
}
using (StreamReader sr = new StreamReader(pipeStream))
{
// ...
}
Теперь сервер канала в другом процессе испытывает трудности, так как соединение канала было преждевременно закрыто.
Подход 3
В другой вопрос, касающийся потоков файлов , было предложено использовать отдельный поток для Reader и Writer.Но это не может быть применено, поскольку оба должны использовать один и тот же экземпляр канала.
Так как правильно управлять потоками в этой ситуации?