0

有谁知道在使用 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 文件,很高兴知道。
谢谢。

4

2 回答 2

2

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

于 2010-04-24T13:37:40.417 回答
2

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

于 2010-04-24T13:51:09.580 回答