private void DisposeTasks(object Buffer)
 {
     //bufferResult = null;
     //mySearchTasks = null;
     //ipList = null;
     _tasksChecking = null;
     _oldLines      = null;
     GC.Collect();
 }
        /*Start*/
        private async void button_Start_Click(object sender, EventArgs e)
        {
            if (!IsRunning)
            {
                #region Перевірка правильності введення ip адрес

                button_Pause.Tag  = false;
                button_Pause.Text = "Pause";

                //https://toster.ru/q/140605
                if (String.IsNullOrWhiteSpace(comboBox_IPFirst.Text))
                {
                    MessageBox.Show("Помилка у початковій адресі", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                if (String.IsNullOrWhiteSpace(comboBox_IPLast.Text))
                {
                    MessageBox.Show("Помилка у кінцевій адресі", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                try
                {
                    _firstIpAddress = IPTools.IPAddress2UInt32(comboBox_IPFirst.Text);
                }
                catch (FormatException ex)
                {
                    _logger.Error(ex);
                    MessageBox.Show("Помилка у початковій адресі", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                try
                {
                    _lastIpAddress = IPTools.IPAddress2UInt32(comboBox_IPLast.Text);
                }
                catch (FormatException ex)
                {
                    _logger.Error(ex);
                    MessageBox.Show("Помилка у кінцевій адресі", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }


                if (!int.TryParse(textBox_Timeout.Text, out _timeOut))
                {
                    _logger.Error("Timeout string [{0}] is incorrect", textBox_Timeout.Text);
                }
                _logger.Info(string.Format("Timeout = {0} ms", _timeOut));

                #endregion

                #region Ініціалізація інтерфейса
                _ipListCount = (_lastIpAddress - _firstIpAddress) + 1;

                _bmpTasksResult = new Bitmap(BMP_WIDTH, BMP_HEIGHT);

                try
                {
                    SetProgressMaxValue(100);
                    SetProgress(new ProgressData());
                }
                catch (Exception ex)
                {
                    _logger.Error(ex);
                    return;
                }

                if (_ipListCount == 0)
                {
                    MessageBox.Show("Помилка у кінцевій адресі", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                StartButtonEnable(false);
                StopButtonEnable(true);
                button_Stop.Focus();



                _bufferedResult = new BufferedResult <IPInfo>();
                _fill.GridFill(SG_Result, null as ListIPInfo, null, _gridHeaders);
                _oldLines         = new ListIPInfo();
                pictureBox1.Image = new Bitmap(pictureBox1.ClientSize.Width, pictureBox1.ClientSize.Height);


                if (!(int.TryParse(textBox_ThreadCount.Text, out _tasksCount)))
                {
                    _logger.Error("TasksCount string [{0}] is incorrect", textBox_ThreadCount.Text);
                }
                #endregion

                _logger.Info(string.Concat("Start searching from [", comboBox_IPFirst.Text, "] to [", comboBox_IPLast.Text, "]"));

                _mySearchTasksCancel = new CancellationTokenSource();
                await Task.Factory.StartNew(Start, _mySearchTasksCancel.Token, TaskCreationOptions.LongRunning, TaskScheduler.Current);

                if (_tasksChecking != null)
                {
                    _tasksChecking.IsStarting = false;
                }
            }
        }