С# подцепить TimeOut к Stream(Writer)?(Reader)?

Есть NamedPipe со службой для Windows (также на C#).
Что на стороне сервера, что на стороне клиента есть объекты StreamReader и StreamWriter:

private StreamReader reader;
private StreamWriter writer;

public NPipeClient()
{
    NamedPipeClientStream client = new NamedPipeClientStream(".", "GDSPipe", PipeDirection.InOut, PipeOptions.Asynchronous);
    client.Connect();

    this.reader = new StreamReader(client);
    this.writer = new StreamWriter(client);
}

И я представляю ситуацию, когда данные ушли с клиента, а сервис в этот момент умирает и в таком случае клиент будет бесконечно ждать репла со стороны сервера, что мне абсолютно не нужно.

Пытался сделать вот так:

this.reader.BaseStream.ReadTimeout = 3000;
this.writer.BaseStream.WriteTimeout = 3000;

Но, как и ожидалось:

Вызвано исключение: "System.InvalidOperationException" в mscorlib.dll
Необработанное исключение типа "System.InvalidOperationException" в mscorlib.dll
Данный поток не поддерживает таймауты.

В остальных случаях нашел только асинхронную кашу, но, уверен кто-нибудь посоветует вариант по-лучше.


Ответы (0 шт):