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

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




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

نام تاپيک: مدیریت کامل Event ها

  1. #1
    در آغاز فعالیت
    تاريخ عضويت
    Apr 2007
    پست ها
    18

    پيش فرض مدیریت کامل Event ها

    با سلام و سپاس از گرد آورندگان این سایت فوق العاده
    این اولین باره که مزاحم شما می شم.امیدوارم بتونم براتون جبران کنم

    من با vb6 برنامه ای نوشتم که در اون یک loop پورت سریال رو می خونه و بعد در دیتا بیس ذخیره می کنه .
    و خیلی مهمه که این loop اصلا متوقف نشه .اما وقتی تو این برنامه یه فرم دیگه باز بشه یا هر Event دیگه ای
    بیاد ،این Loop در همون لحظه متوقف می شه.و بعد از بسته شدن اون فرم دوباره ادامه پیدا می کنه.البته در مورد بعضی Event ها ،این Loop کاملا متوقف می شه تا زمانی که برنامه دوباره شروع شه.
    قصد دارم کاری کنم که حتی با باز شدن یک فرم دیگه ، این Loop بعد از Load شدن آن فرم ادامه پیدا کند.
    همین طور برای Event های دیگر می خواهم در یک صف قرار بگیرند.یعنی یکبار Loop اجرا شود بعد یک Event پاسخ داده شود.بعد دوباره Loop بعد Event دیگر......

    آیا امکان داره من رو راهنمایی کنید؟
    سپاسگذارم

  2. #2
    در آغاز فعالیت
    تاريخ عضويت
    Apr 2007
    پست ها
    18

    پيش فرض

    دوستان فراموش کردم بگم که خودم این مشکل رو حل کردم.اما احتمال میدم دوستان حرفه ای که در این جا حضور دارند راه حل بهتری داشته باشند.مرسی

  3. #3
    در آغاز فعالیت
    تاريخ عضويت
    Apr 2007
    پست ها
    18

    پيش فرض

    دوستان لطفاً هل نشید ،یکی یکی جواب بدید به همتون می رسه.

  4. #4
    پروفشنال SuB's Avatar
    تاريخ عضويت
    Oct 2006
    محل سكونت
    سابستان
    پست ها
    955

    پيش فرض

    احتمالاً شما توی حلقه تون، دستور DoEvents رو گذاشتید. چون من تا اونجایی که دیدم و اطلاع دارم وقتی از حلقه ها توی وی بی استفاده می کنید، چنان از CPU استفاده می کنه که وقت نمیشه به رویدادها رسیدگی کنه.
    شما اگه بنویسید که توی حلقه چی چیزهایی نوشتید شاید بتونم کمک کنم.

    (در واقع من منظور شما رو درست نفهمیدم)

  5. #5
    در آغاز فعالیت
    تاريخ عضويت
    Apr 2007
    پست ها
    18

    پيش فرض

    دوست عزیز ممنون از لطفتون و وقتی که گذاشتید.
    فکر کنم من توضیحاتم کافی نبوده، این حلقه از زمان استارت برنامه شروع می شه و تا برنامه بسته نشه ادامه داره.در نتیجه اگه Doevent نداشته باشه سیستم نمی تونه کار دیگه ای انجام بده.من هدف برنامه رو می گم شاید بهتذ باشه:
    یک دستگاه الکترونیکی وجود داره که این دستگاه در هر لحظه اطلاعات وردیش رو مثل ساعت و تاریخ و ....
    به پورت سزیال می فرسته،البته به شکل اتوماتیک نمی فرسته بلکه از طریق برنامه ای که من نوشتم بهش فرمان مدم که بفرسته.اما اگر تعداد این دستگاهها زیاد شد مثلاً 100 تا،من باید به نوبت به دستگاهها فرمان بدم.
    وقتی فرمان به آخرین دستگاه رسید و اون هم اطلاعات خودش رو فرستاد و من هم از پورت سریال خوندم این دفعه دوباره به اولین دستگاه فرمان میدم و این چرخه ادامه داره.
    حالا در این برنامه مثلاً من می خوام گزارش اطلاعات رسیده رو ببینم.و این حلقه هم به طور منظم اطلاعات پورت رو بخونه.به محض این که فرم مربوط به گزاشات باز می شه ،حلقه متوقف می شه.
    یعنی تا فرم رو نبندم هیچی از پورت نمی خونه.
    من می خوام جلوی این وقفه رو بگیرم.و دنبال یه راه مطمئن هستم.آیا می تونید کمکم کنید؟

  6. #6
    پروفشنال SuB's Avatar
    تاريخ عضويت
    Oct 2006
    محل سكونت
    سابستان
    پست ها
    955

    پيش فرض

    دوست عزیز ممنون از لطفتون و وقتی که گذاشتید.
    فکر کنم من توضیحاتم کافی نبوده، این حلقه از زمان استارت برنامه شروع می شه و تا برنامه بسته نشه ادامه داره.در نتیجه اگه Doevent نداشته باشه سیستم نمی تونه کار دیگه ای انجام بده.من هدف برنامه رو می گم شاید بهتذ باشه:
    یک دستگاه الکترونیکی وجود داره که این دستگاه در هر لحظه اطلاعات وردیش رو مثل ساعت و تاریخ و ....
    به پورت سزیال می فرسته،البته به شکل اتوماتیک نمی فرسته بلکه از طریق برنامه ای که من نوشتم بهش فرمان مدم که بفرسته.اما اگر تعداد این دستگاهها زیاد شد مثلاً 100 تا،من باید به نوبت به دستگاهها فرمان بدم.
    وقتی فرمان به آخرین دستگاه رسید و اون هم اطلاعات خودش رو فرستاد و من هم از پورت سریال خوندم این دفعه دوباره به اولین دستگاه فرمان میدم و این چرخه ادامه داره.
    حالا در این برنامه مثلاً من می خوام گزارش اطلاعات رسیده رو ببینم.و این حلقه هم به طور منظم اطلاعات پورت رو بخونه.به محض این که فرم مربوط به گزاشات باز می شه ،حلقه متوقف می شه.
    یعنی تا فرم رو نبندم هیچی از پورت نمی خونه.
    من می خوام جلوی این وقفه رو بگیرم.و دنبال یه راه مطمئن هستم.آیا می تونید کمکم کنید؟
    اگه درست منظورتون رو فهمیده باشم، میتونید این حلقه رو به صورت یک سرنخ در بیارید. این طوری این حلقه تا هر زما که بخواید، اجرا میشه و متوقف نمیشه.
    اگه بازم نشد، باید سورس برنامه رو اینجا بزارید یا برام ارسال کنید.

  7. #7
    پروفشنال SuB's Avatar
    تاريخ عضويت
    Oct 2006
    محل سكونت
    سابستان
    پست ها
    955

    پيش فرض

    سلام
    من خودم امتحان کردم. بله درسته. حق با شماست. توی VB اگه یک سری دستور در حال اجرا باشند، و دستور دیگری نیز بخواد اجرا بشه، اولویت با دستور جدید هست.
    برای اینکار احتمالاً شما از timer استفاده کردید. اگه این کار رو کردید، باید بگم که تایمر روش خوبی نیست. چون حداقل فاصله زمانی بین اجرای دستورانی که در تایمر قرار دارند، یک میلی ثانیه است و در این مدت، خیلی کارها می توان انجام داد.

    این مشکل شما به این خاطر هست که هر پروژه در VB یک سر نخ یا ریسمان محسوب می شود. پس شما باید برای رفع مشکل، دستوراتی که نیاز دارید هیچگاه متوقف نشوند را در ریسمانی قرار دهید و آنرا اجرا کنید. مقالاتی در این مورد وجود دارد. ولی این رو بدونید که این کار با API ها انجام میشه.

    در استفاده از سرنخ ها در VB باید توجه داشت که استفاده از چند سر نخی (چند ریسمانی) در هنگامی که برنامه هنوز به صورت سورس است (به صورت Exe در نیامده است) مشکل ساز است و ویرایشگر VB، با چند ریسمانی میانه خوبی ندارد.

  8. #8
    در آغاز فعالیت
    تاريخ عضويت
    Apr 2007
    پست ها
    18

    پيش فرض

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

Thread Information

Users Browsing this Thread

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

User Tag List

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

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