//INSTANT C# TODO TASK: This method is a constructor, but no class name was found:
        public ReaderWriterCommand(Form inParentForm,
                                   string inPathРесурсы,
                                   bool inIsServer,
                                   int inCountClientOrNumberClient,
                                   string inServerWorkingFolder,
                                   string inClientWorkingFolder,
                                   Action <string, int, MessageBoxIcon> inAction)
        {
            mParentForm = inParentForm;
            IsServer    = inIsServer;
            CountClientOrNumberClient = inCountClientOrNumberClient;

            if (IsServer)
            {
                // образец: "\\006-stend21\System\doublearray" ' "\\localhost\system\doublearray"
                //sendAddressURL = "\\localhost\system\task1" ' было "dstp://localhost/task1"
                ServerName = GetReceiveAddressURL(inClientWorkingFolder); // Клиент Рабочий Каталог
                Caption    = SERVER;
            }
            else // клиент' просмотр снимка
            {
                //sendAddressURL = "\\localhost\system\task2"
                // только для случая при запуске просмотра снимков
                if (inServerWorkingFolder == null)
                {
                    inServerWorkingFolder = inClientWorkingFolder;
                }

                ServerName = GetReceiveAddressURL(inServerWorkingFolder); // Server Рабочий Каталог
                Caption    = "Клиент";
            }

            // надо считать из конфигурационного файла или ещё как-то создать
            ManagerAllTargets = new ManagerTargets(this);

            if (ManagerAllTargets.LoadTargets() && ManagerAllTargets.Count == 0)
            {
                ManagerAllTargets = null;
                MessageBox.Show("Отсутствуют Клиент-Серверные задачи.", "Создание задач Клиент-Серверного обмена", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            //mTasksReceiveManager = New ManagerTaskApplication(inPathРесурсы)
            mTasksSendManager = new ManagerTaskApplication(inPathРесурсы);

            AppendMethod = inAction;
            CreateCollectionReceiverSender();
            AddHandlerDataUpdatedWriteCompleted();
            AddHandlerDataUpdatedWriteCompleted();

            aTimer          = new System.Timers.Timer(TIMER_INTERVAL);
            aTimer.Elapsed += OnTimedEvent;
            aTimer.Enabled  = true;

            //For Each itemTarget As Target In ManagerAllTargets.Targets.Values
            //    itemTarget.RunListenAsync()
            //    ' послать на очистку после подключения какого-либо клиента
            //    SendRequestProgrammed(itemTarget, "Очистка линии")
            //Next
        }
        private bool isRunListen = true; // бесконечный цикл прослушивания нового соединения для получения команды

        public Target(string inHostName,
                      ManagerTargets inParrentManagerTargets,
                      string inNamePiepListen,
                      string inNamePiepSend)
        {
            HostName = inHostName;
            ParrentManagerTargets = inParrentManagerTargets;
            NamePiepListen        = inNamePiepListen;
            NamePiepSend          = inNamePiepSend;
            // сформировать сетевые адреса для сетевых команд
            URLReceiveLocation = NamePiepListen;
            URLSendLocation    = $"\\\\{inParrentManagerTargets.ParrentReaderWriterCommand.ServerName}\\pipe\\{NamePiepSend}";
            PipeServerStatus   = "Listening - OK"; // TextBoxSendStatus.Text
            CommandWriterQueue = new Queue <NetCommandForTask>(CAPACITY);
            InitializeCollections();
            myPipeClientServer = new PipeClientServer(inNamePiepListen, inNamePiepSend, inParrentManagerTargets.ParrentReaderWriterCommand.ServerName);

            ConfigSend    = new XMLConfigCommand(WhoIsUpdate.DataView);
            ConfigReceive = new XMLConfigCommand(WhoIsUpdate.DataView);
            SubscribeToEvents();
        }