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

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




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

نام تاپيک: رفع مشکل

  1. #1
    اگه نباشه جاش خالی می مونه amirxbest's Avatar
    تاريخ عضويت
    Oct 2010
    محل سكونت
    Iran
    پست ها
    232

    14 رفع مشکل

    دوستان من رو فرم یک تایمر دارم که دستوراتم رو اجرا میکنه(تغیر مکان یک شی) وقتی با ماوس دکمه exit فرم رو نگه میدارم تایمر متوقف میشه (pause) و وقتی بر میدارو باز شروع به کار میکنه(run) میخواستم بدونم چجور میتونم این مشکل رو حل کنم؟

  2. #2
    اگه نباشه جاش خالی می مونه amirxbest's Avatar
    تاريخ عضويت
    Oct 2010
    محل سكونت
    Iran
    پست ها
    232

    پيش فرض

    خودم جواب سوال رو گرفتم البته به کمک یکی از استید vb. میگم واسه بچه هایی که این مشکل رو دارن:

    متاسفانه راه حل مناسبی برای این مشکل سراغ ندارم، این مساله مربوط به ساختار ویژوال بیسیک و نحوه
    اجرا کردن کد ها است و تغییر دادنش عملی نیست.

    ویژوال بیسیک برنامه ها رو تک نخی (Thread) و با مکانیسم Single Apartment می سازه، یعنی همه عملیاتی که قراره توی کدتون انجام بشه
    در یک نخ قرار داره و تا زمانی که کد های یک روال بصورت کامل اجرا نشده سراغ اجرا کردن
    هیچ روال دیگه ای نمیره، حتی تایمر ها که باعث اجرا شدن یک رخداد می شوند تنها زمانی عمل می کنند که
    روال دیگری در حال اجرا نیست. یعنی اگر یک روالی نخ رو مشغول کنه، هیچ رخداد دیگه ای اجرا نمیشه.
    به عنوان مثال کد زیر رو در دکمه Command1 بنویسید، اگر روی دکمه کلیک کنید برنامه و رخداد های Timer رسما
    قفل می کنند و اجرا نخواهند شد :
    کد:
    Private Sub Command1_Click()
    Do
    Loop
    End Sub
    خلاصه اینکه هیچ کاری همزمان انجام نمیشه. به همین دلیل وقتی یک رخدادی مثل کلیک کردن روی دکمه Close
    فرم پیش میاد اجرای رخداد های دیگه موقتا متوقف میشه.

    راه حل این مشکل ساختن برنامه های چند نخی (Multi Thread) است که ویژوال بیسیک ذاتا پشتیبانی نمی کنه.
    ساختن برنامه های چند نخی با ویژوال بیسیک دردسر زیاد داره، مخصوصا که شما باید از داخل نخ دوم به کنترل های
    روی فرم دسترسی داشته باشید که با ساختار ویژوال بیسیک جور در نمیاد.

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


  4. #3
    پروفشنال
    تاريخ عضويت
    Apr 2010
    پست ها
    600

    پيش فرض

    جالب بود...، ممنون امیر جان...!؟!

    من یه همچین برنامه ای رو به صورت چند نخی هم نوشتم... ولی جواب نداد... حتی روش های دیگه رو هم تست کردم... ولی باز همین مشکل رو داشت...!؟!

    اما راه حلی که به ذهنم رسید اینه که دکمه x فرم غیر فعال بشه...!؟! یا اینکه یه قاب سفارشی جایگزین قاب پیشفرض ویندوز بشه...!؟! اینجوری دیگه این مشکل پیش نمی آد...!؟!

    موفق باشی...!؟!
    Last edited by !Plus; 09-08-2011 at 17:51.

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


Thread Information

Users Browsing this Thread

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

User Tag List

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

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