Chcę pokazać postęp obliczeń, które wykonuję w zewnętrznej bibliotece.
Na przykład, jeśli mam jakąś metodę obliczeniową i chcę jej użyć dla 100000 wartości w mojej klasie Form, mogę napisać:
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();
}
}
}
Po każdym obliczeniu powinienem wykonać krok. Ale co jeśli wykonam wszystkie 100000 obliczeń metodą zewnętrzną. Kiedy powinienem „wykonać krok”, jeśli nie chcę uzależniać tej metody od paska postępu? Mogę na przykład pisać
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);
}
}
ale nie chcę tego robić.