如何重用管道

时间:2019-07-01 07:25:06

标签: windows-services named-pipes connection-pool

我遇到以下问题。我正在尝试将NamedPipe用于以下组件:

  • 一个Winservice,在每个Winforms处产生一个SessionChange应用程序

  • Winforms应用程序

因此,当有人登录时,我的Session 0进程会产生一个新的Winforms,打开一个管道,并开始交换消息。

每次有人登录时,我是否需要在NamedPipeServerStream侧创建Winservice的新实例?我知道您可以在NamedPipeServerStream重载时指定连接数,但这对我没有帮助,因为这将是一个长期运行的过程。

var server = new NamedPipeServerStream(
                "somePipe",
                PipeDirection.InOut,
                1, PipeTransmissionMode.Message
                );

await server.WaitForConnectionAsync();

从我看到的是,我必须实现类似PipePool的功能,当客户端(Winforms)断开连接时,我将收集管道并重新初始化它。 我错了吗,管道对象可以重用吗?

PS 为简单起见,我仅考虑仅打开一个会话的情况。

0 个答案:

没有答案