شما می توانید با ارسال ایمیل خود ، بصورت رایگان مشترک شده و از بروزسانی مطلع شوید.

ایمیل خود را وارد کنید:

نینجاگرام بهترین و پرطرفدار ترین ربات شبکه اینستا گرام می باشد. این ربات اکثر کارهای مورد نیاز شما رو به صورت اتوماتیک انجام میدهد در وقت شما به صورت چشم گیری صرفه جویی و در عین حال فالوور و لایک زیادی را برای شما جذب میکند همینطور باعث افزایش سود شما خواهد شد .

دراین دوره اموزش که به زبان فارسی و به صورت صفر تا ۱۰۰ و کاملا حرفه ای میباشد با دیوار آتش kerio control  آشنا میشوید و پس از پایان این دوره آموزشی توانایی نصب و پیکر بندی این فایر وال محبوب رو خواهید داشت .آموزش ها در یک فصل و شامل ۲۵ فیلم اموزشی هستند  با کیفیت بسیار بالا.لینک های دانلود به صورت مستقیم و با قابلیت ادامه دانلود در زیر همین پست قرار میگیرند.

برای یادگیری این که چطور بتونیم یه برنامه برای آندروید بنویسیم و چطور اون رو در استور های معروفی مانند گوگل پلی قرار بدیم یکسری فیلم آموزشی برنامه نویسی آندروید صفر تا ۱۰۰ رو براتون آماده کردم که کاملا به زبان فارسی در ۴ فصل به بررسی و آموزش بخشهای مختلف برنامه نویسی آندروید میپردازه.

آموزش درآمد زایی از اینترنت عنوان مطلبی هستش که امروز در موردش پست میزارم .همه این روزها در این باره پکیج میسازن یا کتاب مینویسن و خیی کارای دیگه که منجر به پول دار شدن خودشون میشه و دارن از این راه امرار معاش میکنند.

فیلم های آموزشی که برای امروز در نظر گرفتم آموزش کامل و صفر تا صد طراحی وب به صورت استاتیک هستش.پس از مشاهده این دوره اموزشی شما قادر به طراحی وبسایتهای استاتیک به صورت کامل میباشید.

آموزش تصویری نصب sql server 2012 به نرم افزار آموزش SQL Server 2012 خوش آمديد. در اين نرم افزار آموزشي مي‌خواهيم روش نصب و کار با SQL Server 2012 را بررسي کنيم. سادگي استفاده از نرم افزار SQL Server 2012 و همچنين هماهنگي کامل آن با NET Platform. باعث شده تا کاربران اين پايگاه داده […]

دانلود فیلم آموزش نصب و پیکر بندی [Windows Server 2012 [70-410 ویندوز سرور  ۲۰۱۲ به انگلیسی:  Windows Server 2012   یک سیستم‌عاملاز خانواده  مایکروسافت ویندوز و از گروه ویندوز سرور تولید شده از شرکتمایکروسافت و برای سرور است. مهمترین ویژگی این نسخه نسبت به نسخه‌های قبلی رابط کاربری جدید مترو است. ویژگی‌های جدید محیط جدیدی برای کنترل […]

برنامه نویسی پایگاه داده در ASP.NET بخش آخر آموزش ASP.NET  در 4 درس  که شامل موارد زیر است. مباحث: ADO.NET با کد نویسی کلاسهای ارتباط با بایگاه داده احراز هویت کاربر ذخیره تصویر در پایگاه داده گزارش گیری از بانک اطلاعاتی سرویس ایمیل   دانلود قسمت دهم دانلود قسمت یازدهم دانلود قسمت دوازدهم

فیلم آموزش ASP.NET قسمتهای ۹ (کار با پایگاه داده)     دانلود رایگان فیلم آموزش ASP.NET قسمت ۹ این راهکار نحوه ساخت یک برنامه ساده داده ای در ASP.Net و استفاده از کنترل هایی که برای این منظور طراحی شده را به شما آموزش می دهد . در این فیلم آموزش ASP.NET  شما با انجام […]

Garbage Collector چیست؟

مرجع آموزش برنامه نوسی و شبکه

Garbage Collector چیست؟

Garbage Collector چیست؟

Garbage Collector چیست؟

حتما در برنامه های ما زمانی وجود دارد که باید اشیاء دیگری که توسط شی جاری خود ایجاد کرده ایم را ببندیم، برای مثال شی ای که ورود و خروج کاربران را در شبکه کنترل می نماید یا در موارد بسیار ساده تر زمانی که باید Connection موجود بین برنامه و DB را در انتهای برنامه ببندیم و چندین و چند مثال دیگر …
برای انجام چنین وظایفی، باید با استفاده از متود Finalize و Dispose (بعدا توضیح می دهم) و همچنین استفاده از کلاس Garbage Collector موجود در Framework چنین کارهایی را انجام دهیم.

متود Finalize چیست؟
Finalize متود ویژه ای است که Garbage Collector قبل از خارج کردن شی از درون Heap Memory آن را فراخوانی می نماید. این متود کم و بیش شبیه رویداد Class_Terminate در Visual Basic 6 می باشد. اما تفاوت هایی نیز وجود دارد. در VB6 بلافاصله بعد از قرار دادن شی به Nothing شی رویداد Class_Terminate را فراخوانی می نماید ولی حال این قضیه صادق نمی باشد.
به طور کل تمامی اشیاء موجو در .NET Framework متود Finalize را از کلاس System.Object به ارث می برند به همین دلیل در زمان استفاده از متود Finalize دو خصوصیت Protected و Overrides را به کار برید.

برنامه ای که در پایین مشاهده می نمایید نحوه استفاده از متود Finalize را بهتر نشان می دهد. برای دیدن نحوه کار مناسب برنامه لطفا مراحل زیر را انجام دهید.
۱٫ پروژه ی جدیدی را در .Net باز نمایید.
۲٫ ویندوز فرم Form1 را از پروژه حذف نمایید.
۳٫ کلاسی با عنوان Person ایجاد نمایید.
۴٫ ماژولی نیز با عنوان MainModule ایجاد نمایید.
۵٫ در Property Page برنامه، خاصیت Startup Object را روی Sub Main تنظیم نمایید.

 

 

۶٫ دگمه F5 را فشار دهید.
۷٫ نتیجه را در پنجره Output ببینید.

همانطور که متوجه شدید به علت اینکه Garbage Collector تنها زمانی فعال می شود، که یا برنامه برای ایجاد اشیاء جدید به حافظه بیشتری احتیاج داشته باشد و یا زمانی که خود برنامه Terminate شود. به همین علت باید به این نکته توجه نماییم :
در متود Finalize هیچ شی جدیدی را ایجاد یا فراخوانی ننمایید. بدلیل اینکه شی منبع به طور کامل از بین می رود پس خود شی جدید نیز به عنوان یک Garbage شناسایی می شود و امکان برخورد با یک Exception پدید می آید.

روش فراخوانی دستی Garbage Collector از طریق برنامه :
برای فراخوانی Garbage Collector می توان به دو طریق عمل کرد :
۱٫ ایجاد متناسب اشیاء اضافی برای ایجاد کمبود در Heap Memory و ضرورت استفاده System از Garbage Collector.
۲٫ فقط کافیه به Garbage Collector اعلام کنیم تا دستور را انجام دهد !؟؟؟

برای این کار در داخل .NET Framework کلاسی تحت عنوان GC وجود دارد که دارای متودهای مختلفی است. مهم ترین این متود ها عبارتند از Collect و WaitForPendingFinalizers و SuppressFinalize (در زمان شرح متود Dispose این متود را توضیح می دهم). کد پرسیجر TestFinalize را به صورت زیر تغییر دهید.

حال برنامه را دوباره اجرا نمایید. و نتیجه را مشاهده نمایید.

متود Collect که مشخص است دستور جمع آوری را صادر می نماید و اما متود WaitForPendingFinalizers اجرای برنامه را تا Finalize صحیح همه اشیاء اضافی موجود در Heap Memory متوقف می نماید.
ذکر این نکته لازم است که استفاده مکرر از کلاس GC نمی تواند ایده مناسبی برای برنامه ما باشد زیرا GC.Collect() سبب جستجوی مکرر در Heap Memory می گردد تا با پیدا کردن اشیاء اضافی آنها را Finalize نمایید، لذا این مسئله در برنامه های بزرگ باعث از بین رفتن یکی از خصوصیات مثبت Framework جدید یعنی Optimizing (بهینه بودن) می گردد. توصیه می شود تنها در زمانی که برنامه در حالت بیکاری به سر می برد از این متود استفاده نمود به عنوان مثال می توان به زمان انتظار برنامه برای ورود اطلاعات از طرف کاربر اشاره نمود).

 

منبع : انجمن برنامه نویس

مرجع آموزش برنامه نوسی و شبکه

دیدگاه خود را به ما بگویید.