Quiero mostrar el progreso de los cálculos, que se realizan en una biblioteca externa.
Por ejemplo, si tengo algún método de cálculo y quiero usarlo para 100000 valores en mi clase de formulario, puedo escribir:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Caluculate(int i)
{
double pow = Math.Pow(i, i);
}
private void button1_Click(object sender, EventArgs e)
{
progressBar1.Maximum = 100000;
progressBar1.Step = 1;
for(int j = 0; j < 100000; j++)
{
Caluculate(j);
progressBar1.PerformStep();
}
}
}
Debo realizar un paso después de cada cálculo. Pero, ¿qué pasa si realizo todos los 100000 cálculos en un método externo? ¿Cuándo debo "realizar el paso" si no quiero que este método dependa de la barra de progreso? Puedo, por ejemplo, escribir
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void CaluculateAll(System.Windows.Forms.ProgressBar progressBar)
{
progressBar.Maximum = 100000;
progressBar.Step = 1;
for(int j = 0; j < 100000; j++)
{
double pow = Math.Pow(j, j); //Calculation
progressBar.PerformStep();
}
}
private void button1_Click(object sender, EventArgs e)
{
CaluculateAll(progressBar1);
}
}
pero no quiero hacer eso.