С# как правильно сделать логику цикла

написал загрузчик фото, подскажите как организовать такую логику, например нужно загрузить фото в один профиль с использованием прокси, прокси может быть больше любое количество, так же с использованием прокси несколько раз в одном цикле. У меня вышло следующее, если все значения 1 к 1, то все хорошо, а если один профиль и прокси больше него, то метод зацикливается.

             private void Work()
           {
            int a = 0;  //Количество выполнений
            int p = 0; //Количество прокси = количеству строк в textbox
            int col = 0; //Возможность зациклить прокси
            Invoke((MethodInvoker)delegate { a = dataGridView1.RowCount; });
            Invoke((MethodInvoker)delegate { p = textBox1.Lines.Length; });
            Invoke((MethodInvoker)delegate { col = Convert.ToInt32(numericUpDown1.Value); }); //Если здесь значение 2

            for (int i = 0; i < a; i++) //Если количество выполнений 1 то выполнится 1 раз
            {
                for (int i2 = 0; i2 < p; i2++) //Но  если в textbox к примеру 6 строк этот цикл выполнится 6 раз
                {
                    Invoke((MethodInvoker)delegate { Avtorization.Proxy = textBox1.Lines[i2]; });
                    for(int i3 = 0; i3 < col; i3++) //Если col = 2, то  этот цикл выполнится 2 раза
                    {
                        //Start(); в общем этот метод отработает 12 раз к примеру, а должен один.
                    }
                }
            }
        }

Ответы (0 шт):