Лучший способ держать трубу открытой после удаленного закрытия

2

Используя этот учебник, я придумал код ниже. Мой клиент работает часто. Он активируется с помощью кликов и, возможно, может быть запущен дважды в тот же момент в определенных обстоятельствах. Я беспокоюсь о том, что один клиент может закрыться, пока другой клиент откроется, что заставляет трубу закрываться в течение этого небольшого количества миллисекунд. Каков наилучший способ открыть трубку?

    static public void ThreadStartServer()
    {
        while (true)
        {
            using (NamedPipeServerStream pipeStream = new NamedPipeServerStream("mytestpipe"))
            {
                Console.WriteLine("[Server] Pipe created {0}", pipeStream.GetHashCode());

                pipeStream.WaitForConnection();
                Console.WriteLine("[Server] Pipe connection established");

                using (StreamReader sr = new StreamReader(pipeStream))
                {
                    string temp;
                    while ((temp = sr.ReadLine()) != null)
                    {
                        Console.WriteLine("{0}: {1}", DateTime.Now, temp);
                    }
                }
            }
        }
  • 0
    Как два клиента подключены к одному каналу? Может ли это когда-нибудь сработать?
Теги:
pipe
named-pipes

1 ответ

1

Сделайте ваш сервер каналов многопоточным, с одним потоком, предназначенным для прослушивания. См. эти ответы:

Ещё вопросы

Сообщество Overcoder
Наверх
Меню