嗨,我有几个关于使用命名管道的问题。
首先,当尝试设置管道服务器时,我注意到如果我使用下面的代码.. 在第一个客户端连接结束时,服务器将变得不可用,除非我将整个事情包装在一段时间(真)块中。我做对了吗?还是每个服务器只应该激活一次然后死掉?
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 为自己创建了自己的线程,但我看不出是这种情况。
谢谢!