Ciao a tutti,
io ho una applic WPF in C#.
al click di un pulsante l'app mi cancella un grande numero di dati e in base alla quantità l'utente deve attendere più o meno tempo.
Vorrei usare la classe Backgroundworker per far vedere la classica progressbar nel mentre delle operazioni di cancellazione.
codice pulsante:
codice della progressbar col backgroundworker:codice:private void Clear_click(object sender, RoutedEventArgs e) { File.Delete(Petroliera.Instances[0].NomeNaveCarico); Petroliera.Instances[0].Clear(); //Clear metodo che mi cancella ulteriori dati. }
il mio problema è come integrare le due cose per raggiungere il seguente scopo:codice:BackgroundWorker BackgroundWorker = new BackgroundWorker(); BackgroundWorker.WorkerReportsProgress = true; BackgroundWorker.DoWork += BackgroundWorker_DoWork; BackgroundWorker.ProgressChanged += BackgroundWorker_ProgressChanged; BackgroundWorker.RunWorkerAsync(); private void BackgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e) { progressBar1.Value = e.ProgressPercentage; } private void BackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { for (int i=0; i<101; i++) { (sender as BackgroundWorker).ReportProgress(i); Thread.Sleep(50); } }
Al click del pulsante l'app fa le operazioni richieste nel click e intanto mi fa vedere la progressbar fino al termine delle operazioni.
grazie in anticipo

Rispondi quotando