تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 7 از 7

نام تاپيک: دوتا سوال از C#.Net

  1. #1
    کـاربـر بـاسـابـقـه saeed_136915's Avatar
    تاريخ عضويت
    Dec 2005
    محل سكونت
    The Land of Skyrim
    پست ها
    2,715

    1 دوتا سوال از C#.Net

    سلام دوستان. من دوتا سوال داشتم از سی شارپ :

    1- چجوری میشه یه Scheduled Task (نمیدونم توی سی شارپ هم این اصطلاح به کار میره یا نه) ایجاد کرد؟ منظورم تایمر نیست، منظورم اینه که یه کاری رو توی یه ساعت مشخص انجام بده.
    2- برنامه هایی که من مینویسم در اجرای طولانی مدت حافظه ی مصرفیشون به تدریج بیشتر و بیشتر میشه به همین خاطر من تو آخر کدهایی که زیاد اجرا میشن ()GC.Collect مینویسم. این کد مشکلی ایجاد میکنه واسه برنامه ؟ اصلا تاثیری داره توی کم کردن حافظه ی مصرفی؟ چون اصولا سیستم عامل خودش باید کار جمع کردن گاربیج رو انجام بده.


    خیلی ممنون

  2. #2
    کـاربـر بـاسـابـقـه szh_1367's Avatar
    تاريخ عضويت
    Apr 2007
    پست ها
    1,007

    پيش فرض

    سلام دوستان. من دوتا سوال داشتم از سی شارپ :

    1- چجوری میشه یه Scheduled Task (نمیدونم توی سی شارپ هم این اصطلاح به کار میره یا نه) ایجاد کرد؟ منظورم تایمر نیست، منظورم اینه که یه کاری رو توی یه ساعت مشخص انجام بده.
    2- برنامه هایی که من مینویسم در اجرای طولانی مدت حافظه ی مصرفیشون به تدریج بیشتر و بیشتر میشه به همین خاطر من تو آخر کدهایی که زیاد اجرا میشن ()GC.Collect مینویسم. این کد مشکلی ایجاد میکنه واسه برنامه ؟ اصلا تاثیری داره توی کم کردن حافظه ی مصرفی؟ چون اصولا سیستم عامل خودش باید کار جمع کردن گاربیج رو انجام بده.


    خیلی ممنون
    سلام

    سوال اول

    برای استفاده یا باید از Scheduled Task خود ویندوز استفاده کنید که میتوانید از [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] اطلاعاتی در مورد اون بدست بیاورید یا باید از Timer استفاده کنید به جز این دو حالت فعلا چیزی یادم نمی اید

    سوال دوم

    برای این سوال باید مطالعه ای بر روی Managed Heap ( اگر بخواهم ریز تر بگویم Small Object Heap و Large Object Heap ) داشته باشید و نحوه کارکرد GC

    اگر بخواهم در این مورد صحبت کنم کم کم باید سه ، چهار صفحه ای در مورد اون بنویسم که در حال حاضر این امکان وجود نداره

    فقط به این اکتفا می کنم که GC در چند حالت فعال خواهد شد

    زمانی که شما به صورت مستقیم GC رو فراخوانی کنید مثلا وسط کدهای برنامه عشقت کشیده GC رو فراخونی کنی

    زمانی که حافظه در حال پر شدن است مثلا شما یک برنامه اجرا میکنی که خوراکش گرفتن حافظه هست وقتی حافظه داره پر میشه GC وارد عمل میشه

    زمانی که استفاده از حافظه زیاد باشه مثلا بخواهی پردازش ها و محاسبات سطح بالا انجام دهید

    فعلا این سه مورد رو به یاد داشتم

    اگر لینک خوبی گیرم اومد حتما اینجا قرار میدهم

  3. این کاربر از szh_1367 بخاطر این مطلب مفید تشکر کرده است


  4. #3
    مدیر انجمن برنامه نویسی Payman_62's Avatar
    تاريخ عضويت
    Dec 2005
    محل سكونت
    تهران
    پست ها
    2,445

    پيش فرض

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

    اما شما میتونی هر زمانی که خواستی با دستور ()GC.Collect حافظه رو خالی کنی. با این کار شما اولویت رو میدی به مدیریت و تخلیه حافظه.
    این دستور مشکلی ایجاد نمیکنه و فقط متغیرها و کلاس ها و در کل آبجکت هایی که scope مصرفشون پایان یافته رو از حافظه خارج میکنه.
    بله در کاهش حافظه مصرفی هم تاثیر داره ولی هر وقت احساس کردی ممکنه با کمبود حافظه مواجه شی دستور رو صدا بزن. چون خود سیستم عامل سر فرصت مدیریت حافظه رو انجام میده.

  5. این کاربر از Payman_62 بخاطر این مطلب مفید تشکر کرده است


  6. #4
    پروفشنال
    تاريخ عضويت
    Nov 2007
    پست ها
    546

    پيش فرض

    بسم الله الرحمن الرحيم
    با سلام
    قبلا چند جا خونده بودم که گفته شده بود که از دستور GC.Collect استفاده نکنیم؛
    چراکه در برخي موارد احتمال داره برخی از رفرنسها رو از دست بديم.
    ولي جالب اينجاست که خود msdn در مثالهايي که براي اين متد آورده بود هيچ هشداري نداده بود.
    موفق باشيد.

  7. این کاربر از shotok بخاطر این مطلب مفید تشکر کرده است


  8. #5
    کـاربـر بـاسـابـقـه szh_1367's Avatar
    تاريخ عضويت
    Apr 2007
    پست ها
    1,007

    پيش فرض

    اگر بخواهیم حافظه رو مدیریت کنیم باید تعریف متغییر ها ، thread ها ، فراخوانی win32 ، استفاده از static ها و . . . رو به خوبی بلد باشیم وگرنه هرچقدر هم که شما از GC استفاده کنید تاثیری بر رو حافظه نخواهد داشت و حتی نتیجه عکس خواهد داد

    و نکته مهمتر اینکه سیستم عامل میتواند تاثیر بسیار بسیار زیادی در مدیریت حافظه داشته باشد

    بسم الله الرحمن الرحيم
    با سلام
    قبلا چند جا خونده بودم که گفته شده بود که از دستور GC.Collect استفاده نکنیم؛
    چراکه در برخي موارد احتمال داره برخی از رفرنسها رو از دست بديم.
    ولي جالب اينجاست که خود msdn در مثالهايي که براي اين متد آورده بود هيچ هشداري نداده بود.
    موفق باشيد.
    مثلا چه رفرنس هایی ؟

    اگر ادرس جایی که مطلب رو خوندید دارید قرار دهید تا بنده و دوستان استفاده کنند

  9. #6
    کـاربـر بـاسـابـقـه saeed_136915's Avatar
    تاريخ عضويت
    Dec 2005
    محل سكونت
    The Land of Skyrim
    پست ها
    2,715

    پيش فرض

    خیلی ممنون از جواب دوستان. من جواب سوال دومم رو گرفتم ولی سوال اولم تقریبا حل نشده. توی اون لینکی که جناب [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] گذاشتن باید یه فایل دیگه دانلود بشه واسه اجرا ولی من میخوام روی چند تا سیستم مختلف اجرا بشه. حالا به فرض من اون فایل رو گرفتم واسه شناسوندن به سیستم باید چیکار کنم؟؟ من فایل هاش رو توی system32 و syswow64 کپی کردم ولی ویژوال استادیو نشناخت اون هارو. چیکار باید بکنم؟

  10. #7
    پروفشنال
    تاريخ عضويت
    Nov 2007
    پست ها
    546

    پيش فرض

    بسم الله الرحمن الرحيم
    با سلام
    خدا رو شکر که جواب سوالتون رو گرفتيد؛ لطفا ماحصلش رو براي ما هم بفرمائيد تا استفاده کنيم.
    موفق باشيد.

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •