PDA

View Full Version : مدیریت حافظه در Timer و Thread و Object....



nbe( amateur C sharp
دوشنبه 03 مهر 1391, 08:43 صبح
با سلام...

ببخشید اگر سوالاتم خیلی زیاده ولی واقعا به جوابهاشون احتیاج دارم

من سوالاتی داشتم راجع به استفاده از Timer و Thread و Object در C#‎ که در حقیقت روشای استفاده از این ها برای مدیریت حافظه و آزاد کردن حافظه را میخواهم...

Timer : تایمر به عنوان یک thread در C#‎ اجرا می شود؟ و بعد از این که کار این Thread تمام میشود در Memory باقی می مونه؟ برای آزاد شدن Memory باید چه کاری انجام دهم، که این Thread ها از بین بروند و منابع سیستمی من را نگیرند؟

Thread : در مورد thread هم می خواستم همین مطلب رو بدونم ، وقتی چندین thread در برنامه در حال اجرا شدن هستند، وقتی کارشون تموم میشه ؛ خودشون از بین می روند و منابع سیستمی را آزاد میکنند؟ اگر خودشون آزاد نمیکنند، چه جوری باید این کار را انجا م بدم که منابع و memory استفاده شده از هر thread وقتی کارش تموم شد آزاد بشه؟ جایی خوندم که اگر مثلا برای thread ای با نام MyThread بگذارم MyThread.Isbackground=True باعث میشه که حافظه رو آزاد بگذاره، این درست است؟ اگر نه باید چه کاری انجام بدم که Thread حافظه اشغال کرده رو آزاد کنه؟

Object : وقتی از یک class یک Object می گیرم ، مثلا ClassTest Myobject = new ClassTest بعد از اینکه کارم با Myobject تموم شد ، برای آزاد کردن حافظه اشغال شده توسط اون ، اگر Myobject=null بگذازم ، حافظه رو آزاد میکنه؟ اگر نه باید چه کاری انجام بدم؟

و یک سوال کلی داشتم راجع به مدیریت حافظه و منابع سیستمی در C#‎ ، که برای اینکه هیچ منبعی هدر نره و منابع بعد از استفاده آزاد بشن ، آیا راه کار کلی در C#‎ وجود داره ؟ یا اینکه هر متغیری که گرفته میشه از حافظه بیرون بره باعث مدیریت حافظه میشه؟ و این که می تونم Garbage Collection که در برنامه در C#‎ به وجود می آید رو پاک کنم که منابع آزاد بشن؟

باز هم معذرت می خوام که سوالاتم زیاد هستند

ممنونم.... .

vaheeed
دوشنبه 03 مهر 1391, 08:51 صبح
من در حد مطالبی که میدونم میگم اگه اشتباه اساتید تصحیح کنن
تایمر یه thread نیست و همراه با thread اصلی برنامه اجرا میشه . با دستور myThread.Abort نخ رو میتونی به صورت دائم از پردازش های سیستم عامل حذف کنی.ببخشید که اطلاعات من تا همین حد بود

nbe( amateur C sharp
دوشنبه 03 مهر 1391, 09:53 صبح
ممنون،

دوستان دیگه می تونند کمک بیشتری بکنند؟؟؟!!!!

nbe( amateur C sharp
دوشنبه 03 مهر 1391, 14:45 عصر
دوستان میشه لطفاا راهنمایی کنید.....

nbe( amateur C sharp
دوشنبه 03 مهر 1391, 14:55 عصر
دوستان من یک سوال دیگه هم دارم ، تصور کنید که یک Object یا Thread وجود داره که در کل برنامه از اون استفاده میشه و دائم از یک قسمن به قسمت دیگه Pass میشه ، میخواستم بدونم که چه طوری میشه حافظه این جور Thread ها یا Object ها رو مدیریت کرد؟؟؟؟