کاربرد Dispose برای آزاد کردن حافظه های اختصاصی به کدهای غیر Managed هست که Garbage Collector نمیتونه به صورت خودکار آزادشون کنه ، مثلا استفاده از API ها خاص ولی برای آزاد سازی منابع دیگه به صورت Force هم میشه ازش استفاده کرد ، مثلا بستن سوکت شبکه ، آزاد سازی FileStream ، بستن کانکشن بانک اطلاعاتی یا ... ، البته فکر نکنید که با پیاده سازی IDisposable این موارد به صورت خودکار انجام میشه ، بلکه باید خودتون داخل بدنه تابع Dispose آزاد سازی های مورد نظر رو پیاده سازی کنید یا Dispose کلاس والد رو صدا بزنید و ...