Zip for WPF/Silverlight
Progress イベント (C1ZipFile)
使用例 

C1.Silverlight.Zip.5 アセンブリ > C1.C1Zip 名前空間 > C1ZipFile クラス : Progress イベント
zip ファイルとの間でデータが読み書きされている間に発生します。
シンタックス
'宣言
 
Public Event Progress As ZipProgressEventHandler
public event ZipProgressEventHandler Progress
イベント データ

イベント ハンドラが、このイベントに関連するデータを含む、ZipProgressEventArgs 型の引数を受け取りました。次の ZipProgressEventArgs プロパティには、このイベントの固有の情報が記載されます。

プロパティ解説
現在の操作をキャンセルする場合は true に設定します。  
圧縮または展開されているファイルの長さを取得します。  
圧縮または展開されているファイルの長さを取得します。  
圧縮または展開されているファイルの名前を取得します。  
ストリーム内の現在の位置を取得します。  
ストリーム内の現在の位置を取得します。  
解説
通常、長い操作中にアプリケーションの UI を更新するために、このイベントを使用します。また、操作をキャンセルするために使用することもできます。
使用例
以下のコードは、アプリケーションがファイルを圧縮している間に、出力ウィンドウに メッセージを書き込みます。
private void Compress()
{
	// zip ファイルを作成します。
	C1Zip zip = new C1Zip();
	zip.Create(zipFileName);
             
	// イベントハンドラを接続します。
	zip.Progress += new ZipProgressEventHandler(zip_Progress);
             
	// ファイルを追加します。
	foreach (string fileName in Directory.GetFiles(path, "*.*"))
		zip.Entries.Add(fileName);
}
             
// ファイルの圧縮中にメッセージを出力します。
private void zip_Progress(object sender, ZipProgressEventArgs e)
{
	Console.WriteLine("Compressing {0}, {1:p0} done",
		e.FileName, e.Position/(float)e.FileLength);
}
参照