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

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




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

نام تاپيک: چگونه تا وقتی که متدی که مربوط به یک Event هست کامل اجرا نشده, برنامه در همون خط بمونه؟

  1. #1
    اگه نباشه جاش خالی می مونه Macdiano's Avatar
    تاريخ عضويت
    Oct 2006
    محل سكونت
    Tehran
    پست ها
    268

    پيش فرض چگونه تا وقتی که متدی که مربوط به یک Event هست کامل اجرا نشده, برنامه در همون خط بمونه؟

    سلام

    من یه برنامه با کنسول دارم مینویسم که از طریق سریال پورت با gsm در ارتباط هست

    کلاس سریال پورت یک Event دارد به نام DataReceived

    وقتی در برنامه یک At Command ران میکنم, متدی که برای DataReceived هست ران میشه

    من میخوام تا وقتی که دستورات داخل این متد به پایان نرسیده است, At Command بعدی اجرا نشه (در واقع خط بعدی کدی که نوشتم اجرا نشه

    تا وقتی دستورات داخل متد DataReceived به پایان برسد).

    مرسی
    Last edited by Macdiano; 31-07-2010 at 07:54.

  2. #2
    کاربر فعال انجمن دات نت عــــلی's Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    زیر سایه عرش الهی
    پست ها
    2,335

    پيش فرض

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

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


  4. #3
    اگه نباشه جاش خالی می مونه pezhmax's Avatar
    تاريخ عضويت
    May 2007
    محل سكونت
    رشت
    پست ها
    333

    پيش فرض

    1- من قبلا رو پورت سریال با یه شبکه RS485 برنامه نوشتم. معمولا شیوه برنامه نویسی رو این پورت به صورت half duplex پیاده سازی میشه. یعنی شما یه پکت داده میفرستی و این پکت توسط سخت افزار گرفته میشه. با دریافت این پکت، سخت افزار یه پاسخی به شبکه بر میگردونه. بعد تو باید thread برنامه خودت رو با یه حلقه مدیریت کنی تا پکتهای دریافتی رو شناسایی کنه و واکنش مناسب رو انجام بده. معمولا این حلقه به صورت یه حلقه همیشه درست تعریف میشه که در شرایطی مثل دریافت پاسخ یا تکرار چندباره خطا از حلقه خارج میشه. البته همیشه تو یه چنین حلقه ای برای جلوگیری از بالا رفتن پروسه thread باید یه sleep کوچولو به حلقه ات بدی. درضمن سعی کن عملیات ارسال و دریافت پکتها رو از thread فرمت جدا کنی.

    2- یه نگاهی به Kylix SMS ActiveX Control بنداز شاید کارتو راه انداخت. تو همین فروم جستجو کنی لینک دانلودش هم هست.

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


  6. #4
    کاربر فعال انجمن دات نت عــــلی's Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    زیر سایه عرش الهی
    پست ها
    2,335

    پيش فرض

    سلام.
    یه نگاهی به Kylix SMS ActiveX Control بنداز شاید کارتو راه انداخت
    استفاده از کنترل فقط سرعت یادگیری رو کاهش میده.
    کاری که با چند خط کد انجام میشه چرا با یک dll دو هزار خطی انجام بشه؟

    این کتاب رو بخون حتماً به جواب میرسی....با استفاده از دستور lock در سی شارپ عملیات پشت سر هم انجام شدن Thread ها رو میتونی یاد بگیری.

    Threading in Csharp:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    موفق باشید.

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


Thread Information

Users Browsing this Thread

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

User Tag List

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

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