If there are any errors running your code: where do they occur in the code ?
Have you tried setting a break-point and single-stepping through your code with F11 and examining the changing values of variables ?
If there are no errors:
Modify the place where you (apparently) update the progress bar like this:
if (countPrg==length)
{
Console.WriteLine("countPrg: {0} length: {1}", countPrg, length);
progressStatus((countPrg * 100) / length, GZipConstants.GZipFile + fileToCompress.Name);
}
Assuming your app runs without errors and actually does something, if you run this code, and then examine the 'Output window in Visual Studio, you should be able to diagnose how many times the code to update the progress bar has been called. I suspect it's being called only once.