Torna al Thread
private BackgroundWorker _backgroundWorkerB1;
public winMain()
{
InitializeComponent();
//BACKGROUNDWORKER BACKUP 1
_backgroundWorkerB1 = new BackgroundWorker();
_backgroundWorkerB1.WorkerReportsProgress = true;
_backgroundWorkerB1.WorkerSupportsCancellation = true;
// CREAZIONE HANDLER BACKGORUNDWORK
_backgroundWorkerB1.DoWork
+= new DoWorkEventHandler(_backgroundWorkerB1_DoWork);
_backgroundWorkerB1.RunWorkerCompleted
+= new RunWorkerCompletedEventHandler(_backgroundWorkerB1_RunWorkerCompleted);
_backgroundWorkerB1.ProgressChanged
+= new ProgressChangedEventHandler(_backgroundWorkerB1_ProgressChanged);
}
private void _backgroundWorkerB1_DoWork(object sender, DoWorkEventArgs e)
{
// Settaggio nome dell'archivio da creare
ArchivioB1.FileName = dest1 + "\\" + nome1 + ".zip";
// Crea il nuovo archivio
ArchivioB1.OpenArchive(System.IO.FileMode.Create);
ArchivioB1.OnOverallProgress += new BaseArchiver.OnOverallProgressDelegate(ArchivioB1_OnOverallProgress);
// Setta la directory dell'origine
ArchivioB1.BaseDir = org1;
// Copia tutti i file nell'archivio creato
ArchivioB1.AddFiles("*.*");
// Chiusura archivio
ArchivioB1.CloseArchive();
}
private void _backgroundWorkerB1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
pbBN1.Value = e.ProgressPercentage;
}
private void _backgroundWorkerB1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Cancelled)
{
//Una Cancellazione
lbBN1Stato.Content = "Annullato..";
}
else if (e.Error != null)
{
//Un Errore
lbBN1Stato.Content = "Errore..";
}
else
{
//Completato
lbBN1Stato.Content = "Completato..";
}
_backgroundWorkerB1.Dispose();
MessageBox.Show("Backup Completati!", "Informazione..", MessageBoxButton.OK, MessageBoxImage.Information);
}
private void ArchivioB1_OnOverallProgress(object sender, double progress, TimeSpan timeElapsed, TimeSpan timeLeft, ProcessOperation operation, ProgressPhase progressPhase, ref bool cancel)
{
_backgroundWorkerB1.ReportProgress(Convert.ToInt32(progress));
}