清空命名管道的内容

时间:2017-01-11 15:31:41

标签: c# pipe buffer ipc

在我的C#应用程序中,我有一个命名管道。服务器启动,等待客户端连接并在管道中写入内容,即客户端应该写入。

从服务器读取后,我无法清除其任何内容的NamedPipe。我想在每次读取后清除命名管道的内容,但Flush()似乎不起作用。

另外,如果任何其他客户端连接到NamedPipe并写入内容,则写入的内容不会发送到服务器,后者继续读取第一个客户端写入的相同字符串。

编辑 - 部分代码

public delegate void EventHandler();
class someClass
{
    WrapperForm dlg = null;
    public void CallToChildThread(Object stateInfo)
    {
        AutoResetEvent autoEvent = (AutoResetEvent)stateInfo;
        StreamReader reader = new StreamReader(server);
        if (server.IsConnected)
        {
            string tempString = reader.ReadLine();
            server.Flush();
        //Fire event
          _show.Invoke();
        }
    public someClass()
    {
        NamedPipeServerStream server;
        public static event EventHandler _show;
        server = new NamedPipeServerStream("TagCnfConnection", PipeDirection.InOut, 1, PipeTransmissionMode.Byte, PipeOptions.Asynchronous);
        server.WaitForConnectionAsync();
        initializeDialog(); // Initialize the dialog. Standard new
        var autoEvent = new AutoResetEvent(false);
        var stateTimer = new System.Threading.Timer(CallToChildThread,
                                   autoEvent, 1000, 250);
        _show += new EventHandler(eventCheck);
    }
    void eventCheck()
    {
        //If some condition
        dlg.ShowDialog(); //Timer stops
    }
}

我能错过什么?

0 个答案:

没有答案