Привет, у меня есть пара вопросов об использовании именованных каналов.
Во-первых, при попытке настроить конвейерный сервер, я заметил, что если я использую приведенный ниже код ... в конце первого клиентского соединения сервер становится недоступным, ЕСЛИ Я не заверну все это в блоке while (true) , Я сделал это правильно? или каждый сервер должен быть активным только один раз, а затем умереть?
using (NamedPipeServerStream pipeServerStream = new NamedPipeServerStream(pipeName, PipeDirection.In, 1, transmissionMode))
{
pipeServerStream.WaitForConnection();
using (StreamReader sr = new StreamReader(pipeServerStream))
{
string message = null;
do
{
message = sr.ReadLine();
OnPipeCommunicationHandler(new IPCData() { Data = message });
}
while (message != null);
}
}
Во-вторых, мне также пришлось раскрутить сервер в своем собственном потоке - если я этого не сделаю, мое приложение не станет доступным. Это нормально? я сделал это правильно? Я думал, что где-то читал, что namedpipeserverstream создает для себя собственную ветку, но я не вижу, что это так ..
Спасибо!