نمایش نتایج 1 تا 10 از 10

نام تاپیک: اجرای یک پروسه زمان بر در رویداد Mouse Move

  1. #1

    اجرای یک پروسه زمان بر در رویداد Mouse Move

    با سلام خدمت دوستان
    من در برنامه ام می خواهم وقتی کاربر موس را روی فرم حرکت می دهد در رویداد On Mouse Move با توجه به مختصات فعلی موس، یک پروسه ای انجام پذیرد (مانند جستجو در یک جدول بزرگ بر اساس مختصات موس) و یک نتیجه ای را برگرداند و نمایش دهد. اما چون این پروسه خیلی طولانی است برنامه دچار مشکل می شود و حرکت موس خیلی کند و به صورت پرشی می شود. می خواستم بدانم راه حل این مشکل چیست. آیا باید رویداد Mouse Move در یک Thread جداگانه اجرا شود یا راه حل دیگری هم وجود دارد.
    ممنون

  2. #2
    کاربر دائمی آواتار shahab_ss
    تاریخ عضویت
    فروردین 1384
    محل زندگی
    bangkok
    سن
    43
    پست
    434

    نقل قول: اجرای یک پروسه زمان بر در رویداد Mouse Move

    دوست من ،برای عمل جستجو شما در واقع بدترین Event رو انتخاب کردی!!!
    مسلماً حرکت موس کند میشه وقتی با کوچکترین تغییر در مختصات موس شما عملیات جستجو رو اجرا میکنی.

    بهتر ه که راه دیگه ای برای این کار پیدا کنی ، به نظر من این کار از اساس مشکل داره!
    اگر بیشتر در مورد کاری که میکنی توضیح بدی شاید بتونم کمکت کنم

    موفق باشی

  3. #3

    نقل قول: اجرای یک پروسه زمان بر در رویداد Mouse Move

    نقل قول نوشته شده توسط shahab_ss مشاهده تاپیک
    دوست من ،برای عمل جستجو شما در واقع بدترین Event رو انتخاب کردی!!!
    مسلماً حرکت موس کند میشه وقتی با کوچکترین تغییر در مختصات موس شما عملیات جستجو رو اجرا میکنی.
    ممنون. اما من چاره ای جز این ندارم. این چیزیه که من نیاز دارم. باید با تغییر موس بلافاصله موقعیت موس را بفهمم و سپس در یک آرایه بزرگ جستجو کنم و مقدار متناظر با آن را برگردانم و نشان دهم.
    ممنون

  4. #4

    نقل قول: اجرای یک پروسه زمان بر در رویداد Mouse Move

    شاید رویداد mouse enter بدردتون بخوره.
    اگه نخورد و تنها راهتون همینه پس حداقل از multithreading استفاده کنید.

  5. #5

    Smile نقل قول: اجرای یک پروسه زمان بر در رویداد Mouse Move

    نقل قول نوشته شده توسط shahab_ss مشاهده تاپیک
    دوست من ،برای عمل جستجو شما در واقع بدترین Event رو انتخاب کردی!!!
    مسلماً حرکت موس کند میشه وقتی با کوچکترین تغییر در مختصات موس شما عملیات جستجو رو اجرا میکنی.
    باید از multithreading استفاده کنی.

    جز این راه حلی بذهن من نمیرسه.

    موفق باشید
    علی پایزی

  6. #6
    کاربر دائمی
    تاریخ عضویت
    دی 1386
    محل زندگی
    shahrekord
    پست
    279

    نقل قول: اجرای یک پروسه زمان بر در رویداد Mouse Move

    اگه واقعا مجبور به انجام همچين عملي هستي منم فكر ميكنم تنها راه اينه كه بزاريش تو thread ديگه

  7. #7

    نقل قول: اجرای یک پروسه زمان بر در رویداد Mouse Move

    از همه دوستانی که روش MultiThreading را پیشنهاد دادند ممنونم. فقط من نمی دانم که باید چگونه یک رویداد را در یک Thread دیگر اجرا کنم. و اینکه چگونه جستجو برای هر نقطه در یک Thread جداگانه انجام گیرد. ممنون می شوم اگر دوستان راهنمایی کنند.
    با تشکر

  8. #8
    کاربر دائمی آواتار علیرضا حسن زاده
    تاریخ عضویت
    تیر 1388
    محل زندگی
    تــــــــــــــــــــــــــبریز
    پست
    897

    نقل قول: اجرای یک پروسه زمان بر در رویداد Mouse Move

    نقل قول نوشته شده توسط smt1383 مشاهده تاپیک
    از همه دوستانی که روش MultiThreading را پیشنهاد دادند ممنونم. فقط من نمی دانم که باید چگونه یک رویداد را در یک Thread دیگر اجرا کنم. و اینکه چگونه جستجو برای هر نقطه در یک Thread جداگانه انجام گیرد. ممنون می شوم اگر دوستان راهنمایی کنند.
    با تشکر
    کارهایی رو که می خوای انجام بدی با کامپوننت Background Worker انجام بده اگه کار با Thread رو بلد نباشی شستفاده از این کامپوننت راحت ترین روشه

  9. #9

    نقل قول: اجرای یک پروسه زمان بر در رویداد Mouse Move

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

  10. #10
    کاربر دائمی
    تاریخ عضویت
    دی 1386
    محل زندگی
    shahrekord
    پست
    279

    نقل قول: اجرای یک پروسه زمان بر در رویداد Mouse Move

    هر نقطه توي يه thread ؟
    مگه نقاط حركت ماوس مد نظرت نيست؟اگه اينجوري باشه يعني تقريبا تعداد نامحدود thread !
    كار با اينهمه thread و كنترلشون خيلي مشكل و حتي ميشه گفت غير ممكنه.نه تنها براي برنامه نويس بلكه براي سيستم عامل هم وحشتناكه.
    موفق باشيد

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •