问题描述
我正在新线程中运行命名管道服务器
private Thread thr1 = null;
private NamedPipeServerStream pipeServer = null;
void Server()
{
pipeServer = new NamedPipeServerStream("MyPipe",PipeDirection.InOut,1,PipeTransmissionMode.Message);
using (var writer = new StreamWriter(pipeServer))
{
while (true)
{
try
{
if (!pipeServer.IsConnected)
{
pipeServer.WaitForConnection();
}
else
{
writer.WriteLine("Sent from C# server!");
Thread.Sleep(2000);
writer.Flush();
pipeServer.Flush();
pipeServer.Close();
}
}
catch (IOException)
{
pipeServer.disconnect();
continue;
}
}
}
}
private void StartServer()
{
thr1 = new Thread(new ThreadStart(Server));
thr1.Start();
}
private void StopServer()
{
if (thr1 != null)
{
if (thr1.IsAlive)
{
thr1.Interrupt();
if (!thr1.Join(1000))
thr1.Abort();
pipeServer.Close();
pipeServer.dispose();
thr1 = null;
}
}
}
当我停止服务器时,管道仍处于打开状态。如果我从应用程序退出,则管道消失了。如何完全删除管道/停止命名管道?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)