使用chilkat通过进度条提取RAR文件?

时间:2010-04-24 13:25:22

标签: c# winforms extract extraction rar

有没有人知道如何在使用chilkat时显示档案提取的进度?我的表单上已经有一个名为“progressBar1”的进度条。目前整个程序在提取开始时冻结。也许有另一个线程? 我正在使用此代码:

Chilkat.Rar rar = new Chilkat.Rar();

bool success;

success = rar.Open("abc123.rar");
if (success != true) {
    MessageBox.Show(rar.LastErrorText);
    return;
}

success = rar.Unrar("c:/temp/unrarDest/");
if (success != true) {
    MessageBox.Show(rar.LastErrorText);
}
else {
    MessageBox.Show("Success.");
}

如果有人有任何其他方法可以提取.rar文件,那就太棒了 感谢。

2 个答案:

答案 0 :(得分:2)

你完全正确。您可能希望在后台线程中进行提取。后台线程应触发事件以更新进度条。当您调用更新进度条时,请确保在事件处理程序中使用Form.Invoke。

答案 1 :(得分:2)

正如汤姆所说,在另一个线程中进行提取是要走的路。一种方法是使用BackgroundWorker组件。它将触发一个单独的线程,您可以在其中进行提取,并且您可以让它定期引发在UI线程中处理的事件以更新进度条。