This is expected behavior.
You can use ProgressEventArgs properties:
- TotalBytesTransferred - total bytes already transferred.
- TotalBytesToTransfer - total bytes to transfer.
- Transferred - bytes transfered during last operation.
to customize user experience any way you'd like.