Greetings ... I currently have a screen similar to the one below:
This screen uses BackgroundWorker to execute a sequence of steps and inform the user through the messages in the textblock a step by step of the tasks that are currently executing.
After the last step is finished, the log and close buttons are displayed and the ProgressBar (below the buttons) is stopped, thus informing the end of the processing.
I would like to reuse this screen for other operations, whose number of steps, each operation will have yours, so I do not know how to exemplify, but would like to turn to the screen a multi-step operation to be performed, another time would pass another operation with several other steps ... I want to reuse the log saving features and inform the user step by step.
I thought of something according to the classes below, but I do not know where to start:
public class Operacao1
{
public void Inicia()
{
// Gostaria de atualizar a tela aqui!
Passo1();
// Aguarda a finalização do passo 1
Passo2();
// Aguarda a finalização do passo 2
Passo3();
// Gostaria de atualizar a tela aqui!
}
private void Passo1()
{
// Gostaria de atualizar a tela aqui!
// implemento a funcionalidade...
// Atualizo novamente a tela aqui!
}
private void Passo2()
{
// Gostaria de atualizar a tela aqui!
// implemento a funcionalidade...
// Atualizo novamente a tela aqui!
}
private void Passo3()
{
// Gostaria de atualizar a tela aqui!
// implemento a funcionalidade...
// Atualizo novamente a tela aqui!
}
}
public class Operacao2
{
public void Inicia()
{
// Gostaria de atualizar a tela aqui!
Passo1();
// Aguarda a finalização do passo 1
Passo2();
// Gostaria de atualizar a tela aqui!
}
private void Passo1()
{
// Gostaria de atualizar a tela aqui!
// implemento a funcionalidade...
// Atualizo novamente a tela aqui!
}
private void Passo2()
{
// Gostaria de atualizar a tela aqui!
// implemento a funcionalidade...
// Atualizo novamente a tela aqui!
}
}
I would like to know if the BackgroundWorker would work, or if it would have to use a task, etc ... thanks for any help!