PDA

View Full Version : مدیریت حافظه در C#؟



gbox26
سه شنبه 16 شهریور 1389, 17:53 عصر
من یه برنامه multithread نوشتم . مشکل اینجاست که دایم مقدار حافظه مورد استفاده بالاتر میره . این برنامه پورت استکنر هست. حتی بعد از زدن دکمه stop حافظه خالی نمی شه.
مشکل چیه باید از Dispose() استفاده کنم؟

Saeed.Masoumi
سه شنبه 16 شهریور 1389, 22:36 عصر
سلام
میشه توضیح بدین کجای کد پورت اسکنرباعث بالا رفتن حافظه میشه؟احتمالا روشتون مشکل داره.کد بدین بهتر می شه بحث کرد.آیا این پورت اسکنر فقط پورت ها را برای باز/بسته بودن چک میکنه؟یا علاوه بر اون برنامه ای که به آن شنود میکند را هم پیدا میکند؟و...

aminghaderi
سه شنبه 16 شهریور 1389, 23:47 عصر
من یه برنامه multithread نوشتم . مشکل اینجاست که دایم مقدار حافظه مورد استفاده بالاتر میره . این برنامه پورت استکنر هست. حتی بعد از زدن دکمه stop حافظه خالی نمی شه.
مشکل چیه باید از Dispose() استفاده کنم؟
در تکمیل پاسخ دوستمون...
یکی از مزایای بلقوه CSharp نسبت به زبانهای دیگه مدیریت حافضه توسط خود زبان هست ، به این صورت که خود برنامه بس از مدتی که ببیند شما از یه کلاس یا یه متغیری استفاده نمی کنید (مقدار ارجاعی به متغیر یا کلاس توسط برنامه 0 هست) اون متغیر یا... رو از چرخه اجرایی خارج می کند. (متغیر یا کلاس یا شی رو حذف می کنه).

gbox26
چهارشنبه 17 شهریور 1389, 05:18 صبح
پورت های باز را پیدا می کنه حالا رو listen باشه. کدم را براساس multithreading کتاب pro .net نوشتم
از قابلیت C#‎ می دونم برای همین باعث تعجبه . کد کتاب هم انگار همین مشکل را داره این زیر می زارمش .چندین بار بزارید برنامه محاسبه بکنه . میشه تو debug فهمید کچای کد باعث این مشکله؟
http://majlesi3.persiangig.com/Pro_NET_2_0_Windows_Forms_and_Custom_Controls_in_C _-2568_class07ct113.com%281%29.zip

gbox26
پنج شنبه 18 شهریور 1389, 05:44 صبح
بیشتر مشکل این بود که هر بار یه کپی از کلاسما به این لیست اضافه می کردم. البته بعد از کار لیستا را پاک کردم که البته مقدار حافظه مصرف شده را کاهش داد. ولی رضایت بخش نیست. کلا طراحی برنامه را دارم عوض می کنم. اگه جواب بقیه سوالاما می دونید لطفا جواب بدید.

aminghaderi
پنج شنبه 18 شهریور 1389, 06:32 صبح
اگه جواب بقیه سوالاما می دونید لطفا جواب بدید.
کدوم سوالات ؟؟ سوال دیگری اینجا نیست؟؟؟

gbox26
پنج شنبه 18 شهریور 1389, 11:14 صبح
میشه تو debug فهمید کچای کد باعث این مشکله؟