El problema radica en que NO puedo cancelar la accion en curso, ocurre que si puedo cancelar el siguiente proceso de compresion o extraccion, mas NO el que ya esta en proceso , podria alguien ayudarme con esto?
Código:
SevenZipBase.SetLibraryPath(path);
var tmp = new SevenZipCompressor();
tmp.ArchiveFormat = OutArchiveFormat.SevenZip;
tmp.CompressionMethod = SevenZip.CompressionMethod.Lzma;
tmp.CompressionLevel = CompressionLevel.Ultra;
tmp.FileCompressionStarted += (s, e) =>
{
e.Cancel = Cancelar;
Dispatcher.Invoke(() =>
{
des.txtTest.AppendText(String.Format("{0} {1}", e.FileName, Environment.NewLine));
des.txtTest.ScrollToEnd();
});
};
tmp.Compressing += (s, e) =>
{
e.Cancel = Cancelar;
Dispatcher.Invoke(() => des.lblPorcentaje.Content = (String.Format("[{0}%]", e.PercentDone)));
};
tmp.CompressionFinished += (s, e) => Dispatcher.Invoke(() => des.txtTest.AppendText(MultiLenguaje.biblioGra04));
tmp.CompressDirectory(folderToZip, destFile);
Este metodo: tmp.CompressDirectory(folderToZip, destFile) es donde se realiza la accion y no encuentro como hacer que se cancele cuando lo quiero , me obliga a esperar a q termine esa accion para que luego en el siguiente proceso se cancele, (esto ocurre cuando se va a comprimir o extraer a mas de un archivo) pero en caso de ser un unico archivo y quiera cancelar el proceso Nno allo como no puedo.
Espero puedan ayudarme, gracias de antemano.