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

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




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

نام تاپيک: نمایش لودینگ در زمان اجرای دستورات

  1. #1
    داره خودمونی میشه Ehsan-l-able's Avatar
    تاريخ عضويت
    Sep 2010
    محل سكونت
    ایران
    پست ها
    121

    پيش فرض نمایش لودینگ در زمان اجرای دستورات

    زمانی که روی یک دکمه کلیک می کنم به دلیل ارسال درخواست و انتظار برای پاسخ ، برنامه من چند لحظه قفل میکنه !! میخوام یک تصویر لودینگ با فرمت gif رو نمایش بدم که بعد از اتمام دستورات مخفی بشه !!

    در ضمن بنا به دلایلی از Background Worker هم نمی خوام استفاده کنم .

    دوستان عزیز چه راهی پیشنهاد می کنند ؟؟؟؟؟؟

  2. #2
    کاربر فعال تالار .Net Msba's Avatar
    تاريخ عضويت
    Dec 2006
    محل سكونت
    ! My Mind
    پست ها
    506

    پيش فرض

    یکسری نکات را برای شما یادآوری می کنم که مفید هستند:
    1- هر برنامه در ابتدا یک پروسس دارد.
    2- پروسس شما یک Thread دارد.
    3- این Thread در یک لحظه فقط به یک چیز پاسخ می دهد.
    4- سیستم عامل این Thread رو به کاربر و رابط فرم اختصاص می دهد.
    5- تمام event های فرم توسط این Thread هندل خواهد شد.
    6- اگر این Thread مشغول شود مطمئنا فرم Not Respond خواهد شد.
    پس برای pictureBox نیز NotRespond خواهد بود. که وظیفه پخش انیمشن شما را دارد و انیمشن متوقف می شود.
    پس شما راهی جز جدا کردن Thread اصلی از کد های خودتان ندارید یا اینکه در زمان های تاخیر با DoEvent از کلاس Application از Thread اصلی بخواهید که یکسری هم به فرم بزند.
    جداسازی ها معمولا با Thread و BackgroundWorker هستند.
    فکر کنم [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] برای شما مفید باشد.

    موفق باشید.

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


  4. #3
    داره خودمونی میشه Ehsan-l-able's Avatar
    تاريخ عضويت
    Sep 2010
    محل سكونت
    ایران
    پست ها
    121

    پيش فرض

    از راهنمایی خوبتون ممنونم ولی یه سوال در اون مبحث که هر پروسس یک Thread داره و برای اجرای سایر دستورات مورد نیاز به صورت موازی یک Thread دیگر رو به کار میگیریم به نظر میاد این Thread دوم زیاد قدرت Thread اصلی رو نداره ، برنامه رو وقتی داخل شبکه اجرا می کنم نمیتونه درخواست منو ارسال کنه ! اما بدون background worker درست اجرا میشه . به نظر شما مشکل کجاست ؟

  5. #4
    کاربر فعال تالار .Net Msba's Avatar
    تاريخ عضويت
    Dec 2006
    محل سكونت
    ! My Mind
    پست ها
    506

    پيش فرض

    یک مشکل در تبدیل کدتان برای BackgroundWorker هست وگرنه غیر منطقی است مگر اینکه کار شما سینک باشد و یا اینکه خیلی وایسته به زمان باشد.برای یک توضیح بیشتر:کد هایی که توسط این کلاس اجرا می شوند با تاخیرهای خاصی از طرف سیستم عامل رو به رو هستند.(آخرین پاراگراف اون مطلب رو بخوانید.)
    اگر از Thread استفاده کنید حتی می توانید زمان بندی CPU رو بیشتر از Thread اصلی کنید:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    این کار از طریق Priority ترید مورد نظر شما انجام می شود.( [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] )
    ( نکته: هرگز Thread ی که وقفه های طولانی دارد مثلا در یک حلقه یک پورت را پولینگ کند را با اولویت بالا تنظیم نکنید چرا که روند عادی سیستم عامل مختل خواهد شد و احتمال قفل سیستم عامل وجود دارد مخصوصا در پردازنده های تک هسته ای.)

    موفق باشید.

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


Thread Information

Users Browsing this Thread

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

User Tag List

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

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