Decompresses file or steam according to how it has been set up on the class.
This method can raise the following exceptions:
If you are expecting big files or streams then consider putting the compressor in a thread to keep your user interface responsive, and make sure you wire up the Progress handler regardless if you use it or not to make sure the thread yields.
If source and destination are both Files then you can use the much simpler to use Task framework which will will spawn up native Thread in the background.
See the example projects to see how to use this class in a thread.