0

チルカットを使用するときに、アーカイブの抽出の進行状況を表示する方法を知っている人はいますか?フォームにはすでに「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

トムが言ったように、別のスレッドで抽出を行うのが道です。これを行う1つの方法は、 BackgroundWorkerコンポーネントを使用することです。抽出を実行できる別のスレッドを起動し、進行状況バーを更新するためにUIスレッドで処理されるイベントを定期的に発生させることができます。

于 2010-04-24T13:51:09.580 に答える