در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش سی شارپ (#C) پیشرفته قسمت 14 : Object Life Time و سرویس GC

آموزش سی شارپ (#C) پیشرفته قسمت 14 : Object Life Time و سرویس GC

برای استفاده از این فیلم آموزشی باید هزینه آن را پرداخت کنید.

شما می توانید 3 دقیقه از این ویدیو را به صورت رایگان مشاهده کنید

در قسمت سیزدهم از سری آموزشی برنامه نویسی به زبان سی شارپ با مبحث مدیریت حافظه در دات نت آشنا می شویم. همانطور که قبلاً گفتیم عملیات مدیریت حافظه در دات نت به صورت خودکار توسط CLR انجام می شود، اما این قابلیت در اختیار ما قرار گرفته که به صورت دستی نیز عملیات های مربوط به GC را انجام دهیم. در این قسمت از دوره آموزشی به بررسی مفاهیم زیر می پردازیم:

  1. آشنایی با حافظه های Stack و Heap
  2. چگونگی تخصیص حافظه برای اشیاء در دات نت و مدیریت حافظه توسط GC
  3. آشنایی با Next Object Pointer ای Next Heap Pointer
  4. آشنایی با Application Root ها
  5. چگونگی ذخیره اشیاء در حافظه Heap و آشنایی با Object Generation ها
  6. آشنایی با کلاس GC و کاربرد آن
  7. نحوه بدست آوردن اطلاعات حافظه و اشیاء بوسیله کلاس GC
  8. آشنایی با متد Collect در کلاس GC برای اجرای سرویس GC به صورت دستی
  9. آشنایی با Finalizer ها و تعریف Destructor ها برای کلاس ها
  10. آشنایی با اینترفیس IDisposable و کلمه کلیدی using
  11. ادغام روش های پیاده سازی Desctructor و IDisposable برای شئ ها (الگوی Disposable)
  12. آشنایی با کلاس Lazy

در قسمت بعدی آموزش خواهید دید:

  1. مقدمه ای بر Windows Forms Application ها
#دوره_پیشرفته_زبان_سی_شارپ #object_life_time_در_دات_نت #متد_finalize_در_کلاس_object #الگوی_disposable #اینترفیس_idisposable #object_generation_ها_در_دات_نت #کلاس_system.gc #کلاس_lazy_در_سی_شارپ #application_root_ها_در_دات_نت #زبان_برنامه_نویسی_سی_شارپ
عنوان
1 آموزش سی شارپ (#C) پیشرفته قسمت 1 : مقدمه ای بر دوره متفاوت 1:31′:14″ رایگان
2 آموزش سی شارپ (#C) پیشرفته قسمت 2 : معماری دات نت و سی شارپ 39′:7″ 3,300
3 آموزش سی شارپ (#C) پیشرفته قسمت 3 : محیط Visual Studio 14′:56″ رایگان
4 آموزش سی شارپ (#C) پیشرفته قسمت 4 : ساختار برنامه ها 31′:49″ 4,400
5 آموزش سی شارپ (#C) پیشرفته قسمت 5 : انواع داده و کار با تاریخ 47′:35″ 4,400
6 آموزش سی شارپ (#C) پیشرفته قسمت 6 : رشته و آرایه 44′:29″ 4,400
7 آموزش سی شارپ (#C) پیشرفته قسمت 7 : مباحث تکمیلی OOP 25′:10″ 4,950
8 آموزش سی شارپ (#C) پیشرفته قسمت 8 : استثناء ، اینترفیس و مجموعه 44′:23″ 7,150
9 آموزش سی شارپ (#C) پیشرفته قسمت 9 : مجموعه ها (Collections) 46′:35″ 5,500
10 آموزش سی شارپ (#C) پیشرفته قسمت 10 : Delegate و Event 42′:23″ 4,950
11 آموزش سی شارپ (#C) پیشرفته 11: Lambda Expression و متدهای بی نام 26′:24″ 4,950
12 آموزش سی شارپ (#C) پیشرفته قسمت 12 : Covariance و Pointer ها 40′:43″ 8,250
13 آموزش سی شارپ (#C) پیشرفته قسمت 13 : LINQ و عملگر های آن 58′:3″ 9,900
14 آموزش سی شارپ (#C) پیشرفته قسمت 14 : Object Life Time و سرویس GC 44′:50″ 5,500
15 آموزش سی شارپ (#C) پیشرفته قسمت 15 : Windows Form Application 32′:30″ 4,400
16 آموزش سی شارپ (#C) پیشرفته قسمت 16 : Class Library 58′:52″ 9,350
17 آموزش سی شارپ (#C) پیشرفته قسمت 17 : اسمبلی های Private و Shared 35′:37″ 4,400
18 آموزش سی شارپ (#C) پیشرفته قسمت 18 : فایل config در سی شارپ 18′:26″ رایگان
19 آموزش سی شارپ (#C) پیشرفته قسمت 19 : آشنایی با Reflection یک 45′:23″ 7,700
20 آموزش سی شارپ (#C) پیشرفته قسمت 20 : آشنایی با Reflection دو 48′:1″ 8,250
21 آموزش سی شارپ (#C) پیشرفته قسمت 21 : آشنایی با Reflection سه 22′:27″ رایگان
22 آموزش سی شارپ (#C) پیشرفته قسمت 22 : آشنایی با Reflection چهار 34′:26″ 9,350
23 آموزش سی شارپ (#C) پیشرفته قسمت 23 : قابلیت Dynamic و COM Interop 43′:14″ 6,600
24 آموزش سی شارپ (#C) پیشرفته قسمت 24: گرفتن خروجی اکسل در برنامه ها 32′:47″ 6,600
25 آموزش سی شارپ (#C) پیشرفته قسمت 25 : کار با Process ها 50′:57″ 8,250
26 آموزش سی شارپ (#C) پیشرفته قسمت 26 : کار با Application Domain ها 30′:15″ رایگان
27 آموزش سی شارپ (#C) پیشرفته قسمت 27 : آشنایی با CIL 32′:37″ 5,500
28 آموزش سی شارپ (#C) پیشرفته قسمت 28 : نوشتن کد مستقیم با زبان IL 1:17′:5″ 14,850
29 آموزش سی شارپ (#C) پیشرفته قسمت 29 : Dynamic Assembly ها 28′:45″ 5,500
30 آموزش سی شارپ (#C) پیشرفته قسمت 30 : برنامه نویسی Asynchronous 35′:15″ 5,500
31 آموزش سی شارپ (#C) پیشرفته قسمت 31 : کار با System.Threading 57′:36″ 8,250
32 آموزش سی شارپ (#C) پیشرفته قسمت 32 : برنامه نویسی Parallel 32′:16″ 4,400
33 آموزش سی شارپ (#C) پیشرفته قسمت 33 : قابلیت async و await 10′:46″ رایگان
34 آموزش سی شارپ (#C) پیشرفته قسمت 34 : BackgroundWorker و Timer 21′:57″ 3,850
35 آموزش سی شارپ (#C) پیشرفته قسمت 35 : کار با فایل ها و پوشه ها 47′:12″ 7,700
36 آموزش سی شارپ (#C) پیشرفته قسمت 36 : ایجاد فایل و پوشه 39′:18″ 5,500
37 آموزش سی شارپ (#C) پیشرفته قسمت 37 : خواندن و نوشتن در فایل ها 18′:50″ رایگان
38 آموزش سی شارپ (#C) پیشرفته قسمت 38 : FileSystemWatcher 16′:33″ 3,850
39 آموزش سی شارپ (#C) پیشرفته قسمت 39 : کار با Stream ها 36′:41″ 5,500
40 آموزش سی شارپ (#C) پیشرفته قسمت 40 : قابلیت Serialization 29′:29″ 6,600
41 آموزش سی شارپ (#C) پیشرفته قسمت 41 : نوشتن برنامه دفترچه تلفن 43′:17″ 9,350
42 آموزش سی شارپ (#C) پیشرفته 42 : ارتباط با بانک اطلاعاتی (ADO.NET) 41′:59″ 9,350
43 آموزش سی شارپ (#C) پیشرفته قسمت 43 : جلوگیری از SQL Injection 20′:14″ 7,150
44 آموزش سی شارپ (#C) پیشرفته قسمت 44 : Connection String 19′:2″ 6,600
45 آموزش سی شارپ (#C) 45 : ذخیره و رمز نگاری Connection String 19′:12″ 8,250
46 آموزش سی شارپ (#C) پیشرفته قسمت 46 : Repository و کلاس Reusable 32′:13″ 6,600
47 آموزش سی شارپ (#C) پیشرفته قسمت 47 : Repository های Generic یک 55′:45″ 10,450
48 آموزش سی شارپ (#C) پیشرفته قسمت 48: ایجاد Repository های Generic 33′:54″ 7,150
49 آموزش سی شارپ (#C) پیشرفته قسمت 49: برنامه انبارداری و فروشگاه یک 14′:40″ رایگان
50 آموزش سی شارپ (#C) پیشرفته 50 : برنامه انبارداری و فروشگاه دو 57′:17″ 7,150
51 آموزش سی شارپ (#C) پیشرفته قسمت 51:برنامه انبارداری:ساختار پروژه 1:14′:53″ 9,350
52 آموزش سی شارپ (#C) پیشرفته قسمت 52 : تست Repository انبارداری 45′:33″ 6,600
53 آموزش سی شارپ (#C) پیشرفته قسمت 53 : استفاده از StructureMap 32′:58″ 6,050
54 آموزش سی شارپ (#C) پیشرفته 54 : تنظیمات اولیه برنامه انبارداری 1:8′:11″ 7,150
55 آموزش سی شارپ (#C) پیشرفته قسمت 55 : Dependency Injection 40′:20″ رایگان
56 آموزش سی شارپ (#C) پیشرفته قسمت 56:برنامه انبارداری:داده اولیه 44′:53″ 3,850
57 آموزش سی شارپ (#C) پیشرفته قسمت 57 : تاریخ شمسی در سی شارپ 19′:21″ رایگان
58 آموزش سی شارپ (#C) پیشرفته قسمت 58 : User Control 13′:10″ رایگان
59 آموزش سی شارپ (#C) پیشرفته قسمت 59:برنامه انبارداری:فرم اصلی 58′:35″ 5,500
60 آموزش سی شارپ (#C) پیشرفته قسمت 60:برنامه انبارداری:View ها 29′:22″ رایگان
61 آموزش سی شارپ (#C) پیشرفته قسمت 61:برنامه انبارداری:Action ها 26′:22″ 3,850
62 آموزش سی شارپ (#C) پیشرفته قسمت 62 : Expression Tree 35′:38″ 4,400
63 آموزش سی شارپ (#C) پیشرفته قسمت 63:برنامه انبارداری:GridView 38′:11″ 4,400
64 آموزش سی شارپ (#C) پیشرفته قسمت 64:برنامه انبارداری:فرم اطلاعات 1:17′:9″ 8,250
65 آموزش سی شارپ (#C) پیشرفته قسمت 65: عبارت OUTPUT در SQL Server 19′:32″ رایگان
66 آموزش سی شارپ (#C) پیشرفته 66:برنامه انبارداری DateTimePicker 1:4′:13″ 8,250
67 آموزش سی شارپ (#C) پیشرفته 67 : برنامه انبارداری : کنترل Dropdown 23′:8″ رایگان
68 آموزش سی شارپ (#C) پیشرفته 68: برنامه انبارداری:DateTimePicker 42′:2″ رایگان
69 آموزش سی شارپ (#C) پیشرفته قسمت 69:برنامه انبارداری:اطلاعات پایه 34′:7″ رایگان
70 آموزش سی شارپ (#C) پیشرفته قسمت 70:برنامه انبارداری:اطلاعات پایه 17′:9″ رایگان
71 آموزش سی شارپ (#C) پیشرفته قسمت 71 : کنترل TreeView 34′:11″ رایگان
72 آموزش سی شارپ (#C) پیشرفته قسمت 72 : کنترل ImageList در TreeView 8′:9″ رایگان
73 آموزش سی شارپ (#C) پیشرفته قسمت 73:برنامه انبارداری:TreeView 37′:34″ 6,050
74 آموزش سی شارپ (#C) پیشرفته قسمت 74:برنامه انبارداری:گروه های کالا 25′:15″ رایگان
75 آموزش سی شارپ (#C) پیشرفته 75 : برنامه انبارداری:پارامتر محصولات 35′:43″ رایگان
76 آموزش سی شارپ (#C) پیشرفته قسمت 75 : پارامتر محصولات 22′:35″ رایگان
77 آموزش سی شارپ (#C) پیشرفته قسمت 77: برنامه انبارداری : رسید انبار 46′:24″ رایگان
78 آموزش سی شارپ (#C) پیشرفته قسمت 78 : برنامه انبارداری : ثبت رسید 35′:19″ رایگان
79 آموزش سی شارپ (#C) پیشرفته قسمت 79 : کار با DataSet 48′:52″ 7,700
80 آموزش سی شارپ (#C) پیشرفته قسمت 80 : فیلتر بوسیله DataView 9′:9″ رایگان
81 آموزش سی شارپ (#C) پیشرفته قسمت 81 : Transaction ها در ADO.NET 12′:12″ رایگان
82 آموزش سی شارپ (#C) پیشرفته قسمت 82 : مقدمه ای بر Entity Framework 26′:7″ 5,500
83 آموزش سی شارپ (#C) پیشرفته قسمت 83 : Mapping در Entity Framework 39′:44″ 7,700
84 آموزش سی شارپ (#C) پیشرفته قسمت 84 : Data Annotations 41′:15″ 7,700
85 آموزش سی شارپ (#C) پیشرفته قسمت 85 : Fluent API 46′:16″ 7,700
86 آموزش سی شارپ (#C) پیشرفته قسمت 86 : وراثت (Inheritance) 38′:23″ رایگان
87 آموزش سی شارپ (#C) پیشرفته قسمت 87 : مباحث پیشرفته در Mapping 51′:50″ 8,800
88 آموزش سی شارپ (#C) پیشرفته قسمت 88 : بحث تکمیلی Entity Framework 1:10′:44″ رایگان
89 آموزش سی شارپ (#C) پیشرفته قسمت 89 : تغییرات روی بانک اطلاعاتی 31′:0″ 7,150
90 آموزش سی شارپ (#C) پیشرفته قسمت 90 : Concurrency و Transaction 19′:18″ رایگان
91 آموزش سی شارپ (#C) پیشرفته قسمت 91 : کار با XML و LINQ2XML 26′:18″ 6,600
92 آموزش سی شارپ (#C) پیشرفته قسمت 92: امنیت در دات سی شارپ و دات نت 29′:24″ 8,250
93 آموزش سی شارپ (#C) پیشرفته قسمت 93 : Claim ها در دات نت 31′:18″ 6,600
94 آموزش سی شارپ (#C) پیشرفته قسمت 94 : رمزنگاری در دات نت 29′:48″ 7,150
95 آموزش سی شارپ (#C) پیشرفته قسمت 95 : رمزنگاری Symmetric 45′:10″ 11,550
96 آموزش سی شارپ (#C) پیشرفته قسمت 96 : رمزنگاری Asymmetric 31′:40″ 9,350
97 آموزش سی شارپ (#C) پیشرفته قسمت 97 : Code Access Security 15′:23″ رایگان
98 آموزش سی شارپ (#C) پیشرفته قسمت 98 : آموزش WPF 45′:24″ رایگان
99 آموزش سی شارپ (#C) پیشرفته قسمت 99 : آموزش WPF 42′:11″ 7,700
100 آموزش سی شارپ (#C) پیشرفته قسمت 100 : آموزش WPF 59′:42″ 8,250
101 آموزش سی شارپ (#C) پیشرفته قسمت 101 : آموزش WPF 37′:18″ رایگان
102 آموزش سی شارپ (#C) پیشرفته قسمت 102 : آموزش WPF 1:10′:17″ 11,550
103 آموزش سی شارپ (#C) پیشرفته قسمت 103 : آموزش WPF 1:18′:54″ 11,550
104 آموزش سی شارپ (#C) پیشرفته 104: Localization Globalization در WPF 24′:37″ 7,150
105 آموزش سی شارپ (#C) پیشرفته قسمت 105 : آموزش UWP 40′:24″ رایگان
106 آموزش سی شارپ (#C) پیشرفته قسمت 106 : آموزش UWP 28′:37″ رایگان
107 آموزش سی شارپ (#C) پیشرفته قسمت 107 : آموزش UWP 21′:57″ رایگان
108 آموزش سی شارپ (#C) پیشرفته قسمت 108 : گرافیک در سی شارپ و چاپ 29′:0″ 6,050
109 آموزش سی شارپ (#C) پیشرفته قسمت 109 : برنامه نویسی شبکه 51′:45″ 8,800
110 آموزش سی شارپ (#C) پیشرفته قسمت 110 : Unit Testing و نوشتن تست 23′:24″ 6,050
111 آموزش سی شارپ (#C) پیشرفته قسمت 111 : آموزش استفاده از MEF 24′:1″ رایگان
112 آموزش سی شارپ (#C) پیشرفته قسمت 112 : Tracing و EventLog 50′:40″ 9,350
113 آموزش سی شارپ (#C) پیشرفته قسمت 113 : Performance Counters 18′:55″ رایگان
114 آموزش سی شارپ (#C) پیشرفته قسمت 114 : Windows Service 17′:14″ 4,950
115 آموزش سی شارپ (#C) پیشرفته قسمت 115 : کامپایلر دات نت (Roslyn) 1:2′:55″ 9,900
116 آموزش سی شارپ (#C) پیشرفته قسمت 116 : Deploy برنامه ها 43′:46″ رایگان
زمان و قیمت کل 72:17′:18″ 548,350
10 نظر
dehkhoda

با سلام

می خواستم بدونم فرق بین Concurrent Garbage Collection و Background Garbage Collection در چیست

با تشکر

برای مشاهده نظرات مدرس باید این ویدیو را خریداری کنید.

dehkhoda

با سپاس

zahra .m

سلام استاد وقت بخیر

3 تا سؤال داشتم از خدمتتون:

1.در بخش شرط if داخلی، عبارت disposing رو نوشتید، در صورتی که قبلا تعریف نشده، آیا باید disposed رو می نوشتید؟

2.در بخش هایی که به صورت command مشخص کردید چه کدهای رو باید بزاریم؟

3.چه زمانی باید از این pattern برای پاکسازی حافظه استفاده کینم؟

کد مربوط به سؤال

برای مشاهده نظرات مدرس باید این ویدیو را خریداری کنید.

zahra .m

سلام استاد،وقت بخیر

این کدهایی که برای پاک سازی حافظه، در resource ها managed & unmanaged، در ویدئو و توضیحاتتون بهش اشاره کردید، در این دوره آموزش دادید؟

سؤال دیگه ای هم که از خدمتتون دارم اینه که، application root دقیقاً به چه اشیایی اشاره می کنه؟یعنی آدرس همه اشیائی که داخل heap هست، داخل application root قرار داره؟کاربردش چیه؟

برای مشاهده نظرات مدرس باید این ویدیو را خریداری کنید.

aminghaderi

سلام عرض احترام .

پترن را توضیح دادید اما اصل کار رو خیر .

کامنت دوستان رو بالا خوندم اما باز هم نمونه ای ارائه نشد ، لازم بود حداقل یک مثال کوچک مثلا برای کلاسی که دارد از دیتابیس استفاده می کند را قرار می دادید که موضوع روشن شود ، الان من دقیقا همین نکته مشکلم بود که متاسفانه انتهای فیلم متوجه شدم بازم خورد به درب بسته .

ممنونم .

برای مشاهده نظرات مدرس باید این ویدیو را خریداری کنید.

aminghaderi

عرض سلام و احترام مجدد

ممنون از توضیحاتتون و در ادامه توضیح میدم که سوال من دقیقا چه بود .

اما قبل طراح سوال ، این که دو بخش از مطالب توسط فردی خریداری شده یکی از دلایلش می تونه این باشه که طرف مقابل شاید به بقیه مسایل مسلط باشه، شما جناب مهندس پیش فرض همه مصرف کننده های اموزشتون را تازه کار نبینید ، بنده که دو پارت از اموزش شما مد نظرم بوده بیشتر از 10 سال برنامه نویس سی شارپ هستم ، منتها این مسایلی که اموزش دادید همانطور که خودتون هم درجریان هستید جز مسائل جدید و پرفورمنس سی شارپ به شمار میاد ، شاید بگید تردینگ ار دات نت 1 هم بوده و من هم پاسخم مثبته ولی واقعا بس سخت و پیچیده بود کسی به دنبالش نمی رفت ، using نبود ولی پاک سازی حافظه بود که همه به گردن گاربج کالکتور می انداختند ، و قاعدتا با حجم یوزری که در اون زمان بود خیلی ها نیازی به درگیر شدن با ترد ها و بهینه سازی ها حافظه ها نمی دیدند ، ضمن اینکه واقعا کار پیچیده و سختی بود و باعث به وجود امدن کلی خطای عجب و غریب میشد و اما حالا با این ترافیک بالا ما نیاز به استفاده از امکانت بهینه سازی داریم و ماکروسافت به کمک ما امده ، خصوصا در C# 8 .

حالا سوال بنده ، ببنید من کلی بررسی کردم و تهش این لینک رو دیدم :

https://stackoverflow.coma12405/1395101

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

سوالم این بود که خوب داخل این بخش کامنت شده چه چیز هایی باید قرار بگیرد و من تصور داشتم کدی که در اون بخش قرار میگره کل پاک سازی حافطه رو انجام میده که بعد متوجه شدم خیر این بخش یه بخش اضافی هست که اگر برنامه نویس از ریسورس خاصی استفاده کرد می تونه اونو اینجا از بین ببره و اصل پاک سازی کلاس فعلی توسط متد despos که در اصل متدی از انترفیس Idesposable هست خودش به طور داخلی عملیات پاک سازی کلاس ما رو انجام میده ، اما جان شارپ در کتابش کمی بیشتر توضیح داده و این پترن رد کرده که من امروز قراره تست کنم ببینم حق با ایشون هست یا خیر اما پترن که توضیح دادید مرسوم تره و در MSDN هم هست .

با تشکر ، قادری

Ref : Microsoft Visual C# 2012 Step By Step John Sharp

https://www.amazon.comMicrosoft-Visual-2012-Step-Developerdp/0735668019

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....