نمایش نتایج 1 تا 2 از 2

نام تاپیک: آزاد سازی منابع در کلکسیون ها

  1. #1

    Lightbulb آزاد سازی منابع در کلکسیون ها

    سلام.
    یه سوال دیگه هم داشتم که اگه جواب بدید واقعا لطف می کنید.

    آیا در انواع Collection با دستور Remove منابع اشغال شده آزاد می شوند؟
    فرض می گیریم که اشیا به جای دیگری وصل نیستند.

    مثلا در این کد منابع آزاد میشوند؟
                System.Collections.ArrayList myTimers = new System.Collections.ArrayList();
    myTimers.Add(new Timer());
    myTimers.RemoveAt(0);
    آخرین ویرایش به وسیله m2_farzan : یک شنبه 03 مهر 1390 در 16:05 عصر

  2. #2

    نقل قول: آزاد سازی منابع در کلکسیون ها

    سلام.

    • از ArrayList استفاده نکنید، بدلیل انجام عمل Boxing/Unboxing هنگام دسترسی به Element های لیست! (استفاده از Generic List ها ارجحیت داره).
    • اگر منظورتون از آزاد سازی منابع، فراخوانی Dispose روی Element های موجود در ArrayList هنگام Call شدن متود RemoveAt هستش، خیر، Dispose بطور خودکار روی Element ها Call نخواهد شد.
    • اگر شما نیاز دارید تا Element ها هنگام حذف شدن از لیست، Dispose نیز بشن، باید Extension Method ای بنویسید و این کار رو خودتون در اون متود انجام بدید. روش انجام اینکارو میتونید اینجا مشاهده کنید.
    • برای آشنایی با چگونگی آزادسازی Resource ها در .NET توسط Garbage Collector، لطفا به این مقاله رجوع کنید.

    موفق باشید.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •