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);
                    }
                }
            }
        }
4

1 回答 1

1

使您的管道服务器多线程,其中一个线程专用于监听。请参阅这些 答案

于 2011-06-21T08:25:36.977 回答