public void Request(NewCounter[] Current, AmountCounter SumForm) // Основная фукнция работы опрашивания счетчика { while (!_Cancelled) { double[] Summary = new double[3]; // Сумма мощностей на каждой фазе for (int i = 0; i < Current.Length; i++) { if (!_Cancelled) // Нажата ли кнопка отмены { try { if (!_serialPort.IsOpen) // Открываем порт { _serialPort.Open(); } } catch { } Indications = new double[3, 3]; // Создаем новый массив показаний Inquiry(Current[i].Name, Current[i]); // Делаем запрос и заполняем форму Summation(ref Summary); // Суммируем результаты if (_serialPort.IsOpen) { _serialPort.Close(); // Закрываем порт } _serialPort.Dispose(); } else // Высвобождаем ресурсы { _serialPort.Close(); _serialPort.Dispose(); break; } } if (AllRequsted) { DelegateWriteSummary D1 = SumForm.ChooseTypeWrite; // Выполняем делегат суммирующего графика SumForm.Invoke(D1, Summary); } } }
void AddNewCounter(AmountCounter childFrm) // Добавление суммарного на вкладку { CounterPage.TabPages.Add(childFrm.Text); childFrm.Parent = CounterPage.TabPages[0]; }