سجاد جان بنده همون جملات خودت رو باز نویسی می کنم:
منبعمتد GC.Collect() که اولین بار صدا زده میشه ، چون منتظر جمع آوری و کارهای مربوط به GC نمیمونه (اون عملیات چون Async هستش قطعا در یک نخ دیگه اجرا میشه). متد GC.WaitForPendingFinalizers() ، باعث توقف نخ جاری میشه (نخی که این دستور را صدا زده که مطابق مثال همون Main Thread برنامه هستش) تا عملیات مربوط به صف ، در GC تمام بشه و بعد که دوباره GC.Collect() را فراخونی میکنیم ، چون اطلاعات مطمئنا جمع آوری شده ، کارشو تموم میکنه و درست انجام میده.






پاسخ با نقل قول
Bookmarks