У меня следующая проблема. Я пытаюсь повторно использовать NamedPipe
для следующих компонентов:
Поэтому, когда кто-то входит в систему, мой процесс Session 0
порождает новый Winforms
, открывает канал для него иначинает обмениваться сообщениями.
Нужно ли создавать новый экземпляр NamedPipeServerStream
на стороне Winservice
каждый раз, когда кто-то входит в систему?Я знаю, что вы можете указать количество подключений при перегрузке NamedPipeServerStream
, но это не помогает мне, поскольку это будет длительный процесс.
var server = new NamedPipeServerStream(
"somePipe",
PipeDirection.InOut,
1, PipeTransmissionMode.Message
);
await server.WaitForConnectionAsync();
Из того, что я вижу, я должен реализоватьчто-то вроде PipePool
, когда клиент (Winforms
) отключается, я собираю канал и повторно инициализирую его.Я не прав, можно ли повторно использовать объекты канала?
PS Ради простоты я рассмотрю только случай, когда открыт только один сеанс.