В настоящее время я пишу службу Windows в .NET, и я использую именованные каналы, чтобы другие процессы связывались с моей службой. В более сложных конструкторах NamedPipeServerStream имеется параметр с описательным именем maxNumberOfServerInstances. Потрясающие. Но что это значит?Какова цель maxNumberOfServerInstances в классе NamedPipeServerStream?
документации MSDN является также полезным при объяснении:
Максимальное количество серверных экземпляров, которые разделяют то же имя.
Хорошо. Это все еще не говорит мне, что для меня это значит, или как я его использую. Было бы разумно, если бы NamedPipeServerStream также принял делегата за «запуск этого кода при получении соединения», поэтому каждый «экземпляр сервера» затем запустил этот код. Но это не так.
Я не думаю, что это совершенно верно. Каждое одновременное клиентское соединение использует исключительно один экземпляр канала: вы не можете подключить несколько клиентов к одному экземпляру канала (а также экземпляр .NET NamedPipeServerStream подключается только к одному клиенту за раз). Таким образом, служба, использующая 1 для этого аргумента, будет сериализовать все его клиентские запросы. Скорее, подумайте об этом как о размере пула соединений - служба захочет установить его на количество действительно одновременных клиентских запросов, с которыми он способен справиться. –