Here is code from MSDN. I don\'t understand why the work isn\'t just done in the regular Dispose() method here. What is the purpose of having the Dispose(bool) method? Wh
Your Dispose(disposing) method shouldn't explicitly free resources if it is called from finalizer, since these resources can be already freed by GC.
So, Dispose(disposing) should check whether it was called manually or from GC and acts appopriately.