开发者

Using chilkat to extract RAR files with progress bar?

Does anyone know how to show the progress of archives extracting, when using chilkat? I already have a progress bar called "progressBar1" on my form. At the moment the whole program freezes when extraction is started. Maybe have another thread? I'm using this code:

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.");
}

If anyone has any alte开发者_运维技巧rnative ways to extract .rar files, it would be great to know.

Thanks.


You are exactly correct. You would want to do the extraction in a background thread. The background thread should fire events to update the progress bar. Make sure to use Form.Invoke in your event handler when you make the call to update the progress bar.


As Tom said, doing the extraction in another thread is the way to go. One way to do that is to use the BackgroundWorker component. It will fire off a separate thread where you can do the extraction, and you can have it periodically raise events that are handled in the UI thread for updating a progress bar.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜