Moim problemem jest oczekiwanie na zakończenie obiektu klasy w WPF-e. Moim zamysłem było stworzenie klasy , która w osobnym oknie wyświetli progressbar i w wątku wypakuje zip-a. W tym czasie okno rodzic będzie wyłączony. Po skończeniu pracy progressbar się zamknie a okno rodzic podejmie na nowo swoją pracę.
Tworzenie drugiego okna i wykonanie metod
var mProgressBar = new ProgressBar(zipPath,TEMPDIRECTORY_Cache,ID,this);
mProgressBar.Show();
Natomiast kod konstuktora mProgressBar wygląda tak :
public ProgressBar(string pathToZipFile, string destinationFolder, int id, MainWindow mainWindow)
{
_mainWindow = mainWindow;
PathToZipFile = pathToZipFile;
DestinationFolder = destinationFolder + @"//" + id.ToString();
worker = new BackgroundWorker();
worker.DoWork += worker_DoWork;
worker.ProgressChanged += worker_ProgressChanged;
worker.RunWorkerCompleted += worker_RunWorkerCompleted;
worker.WorkerSupportsCancellation = true;
mainWindow.Visibility = Visibility.Hidden; //tak sobie rozwiązałem zamykanie okna rodzica, oczywiście w metodzie RunWorkerCompleted przywracam okienko
InitializeComponent();
}
Jednak nurtuje mnie pytanie w jaki sposób w oknie rodzicu rozpoznawać, i czekać na zakończenie pracy progressBara. Chciał bym wiedzieć kiedy mam dane już wypakowane i mogę się nimi zająć.