【发布时间】:2011-02-11 20:57:17
【问题描述】:
有谁知道在使用 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 文件,我会很高兴知道。
谢谢。
【问题讨论】:
-
感谢汤姆·卡班斯基和克里斯·泰伯。我现在使用 BackgroundWorker 组件让它工作,并通过使用“backgroundWorker1.RunWorkerAsync();”调用它。仍然没有弄清楚如何使进度条工作。
-
我对 chilkat 了解不多,但是如果该库可以在 UnRar 方法从存档中提取时以某种方式生成状态事件,您可以处理这些事件并调用 BackgroundWorker 组件的 ReportProgress 方法.然后在您的表单中处理 BackgroundWorker ProgressChanged 事件,并在该处理程序中增加进度条。请参阅stackoverflow.com/questions/614111/running-class-as-new-thread 了解更多信息。
标签: c# winforms extract extraction rar