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

نام تاپیک: خروج از حلقه تکرار بی نهایت

  1. #1
    کاربر دائمی آواتار alinaghiha
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تاکستان
    سن
    39
    پست
    351

    خروج از حلقه تکرار بی نهایت

    خسته نباشید یک کد حلقه تکرار دارم که میخوام با یک کلید یا دکمه ازش خارج بشم لطفا راهنمایی بفرمایید
     private void button1_Click(object sender, EventArgs e)        {

    SetCursorPos(550, 680);
    do
    {
    SetCursorPos(550, 680);
    Thread.Sleep((int)TimeSpan.FromSeconds(5).TotalMil liseconds);
    SendClick();

    }
    while (true);


    }

  2. #2

    نقل قول: خروج از حلقه تکرار بی نهایت

    این قسمتی از while که جلوش نوشتی true ، یه متغیر سراسری بولین بزار مثلا اسمش cheak_exit باشه که به صورت پیش مقدارش true هست ..بعدش برا رویداد کلیک دکمه ای که میخوای حلقه رو تموم کنه این کدو بنویس



    cheak_exit=false;


  3. #3
    مدیر بخش آواتار محمد رضا فاتحی
    تاریخ عضویت
    مهر 1387
    محل زندگی
    کهنسالترین موجود زنده در شهر منه
    پست
    1,181

    نقل قول: خروج از حلقه تکرار بی نهایت

    می تونید یه متغیر سراسری تعریف کنید که وقتی روی دکمه کلیک شد مقدار true بگیره...و داخل حلقه اون چک کنید وقتی true بود از حلقه break کنید!

    *پ.ن: ظاهرا با ارسال دوستمون هم زمان شد!
    یک نقطه بیشتر فرق بین رحیم و رجیم نیست...از نقطه ای بترس که شیطانیت می کند

    ________________________

  4. #4
    کاربر دائمی آواتار alinaghiha
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تاکستان
    سن
    39
    پست
    351

    نقل قول: خروج از حلقه تکرار بی نهایت

    مرسی از پاسختون اما وقتی میره داخل حلقه دیگه اجازه کلیک نمی ده

  5. #5
    کاربر دائمی آواتار alinaghiha
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تاکستان
    سن
    39
    پست
    351

    نقل قول: خروج از حلقه تکرار بی نهایت

    نقل قول نوشته شده توسط mehran6764 مشاهده تاپیک
    این قسمتی از while که جلوش نوشتی true ، یه متغیر سراسری بولین بزار مثلا اسمش cheak_exit باشه که به صورت پیش مقدارش true هست ..بعدش برا رویداد کلیک دکمه ای که میخوای حلقه رو تموم کنه این کدو بنویس



    cheak_exit=false;

    مرسی اما امکان هیچ کاری در حلقه بی نهایت نیست من نیاز به یک روشی بصورت Runtime هستم که اگه کلیدی ارسال شد از حلقه بیاد بیرون

  6. #6
    کاربر دائمی آواتار alireza_s_84
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    اهواز
    پست
    1,191

    نقل قول: خروج از حلقه تکرار بی نهایت

    نقل قول نوشته شده توسط alinaghiha مشاهده تاپیک
    مرسی اما امکان هیچ کاری در حلقه بی نهایت نیست من نیاز به یک روشی بصورت Runtime هستم که اگه کلیدی ارسال شد از حلقه بیاد بیرون
    وقتی حلقه در Thread اصلی اجرا بشه کل ترد رو قفل میکنه. باید توی یک ترد جداگانه اجرا بشه.

  7. #7
    مدیر بخش آواتار ژیار رحیمی
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    پست
    1,095

    نقل قول: خروج از حلقه تکرار بی نهایت

    نقل قول نوشته شده توسط alinaghiha مشاهده تاپیک
    خسته نباشید یک کد حلقه تکرار دارم که میخوام با یک کلید یا دکمه ازش خارج بشم لطفا راهنمایی بفرمایید
     private void button1_Click(object sender, EventArgs e)        {

    SetCursorPos(550, 680);
    do
    {
    SetCursorPos(550, 680);
    Thread.Sleep((int)TimeSpan.FromSeconds(5).TotalMil liseconds);
    SendClick();

    }
    while (true);


    }
    سلام کدهای داخل حلقه while شامل توابعی ست که در MainThread اجرا میشود و بصورت دائم مشغول اجرا شدن در Thread اصلی برنامه ست که کار درستی نمی باشد و باعث هنگ کردن UI برنامه خواهد شد(در صورتیکه MainThread در حال اجرای حلقه While هست اگر دکمه ایی روی فرم کلیک شود رویداد آن فراخوانی نمیشود).بهتر از یک Task که قابلیت Cancellation شدن آن فعال یاشد استفاده نمایید.

    CancellationTokenSource tokenSource = new CancellationTokenSource();
    private void Form4_Load(object sender, EventArgs e)
    {
    CancellationToken token = tokenSource.Token;
    Task.Run(() =>
    {
    Invoke((MethodInvoker) delegate {
    //TODO write your code
    //SetCursorPos(550, 680);
    //Thread.Sleep((int)TimeSpan.FromSeconds(5).TotalMil liseconds);
    //SendClick();
    });
    }, token);
    }
    private void button2_Click(object sender, EventArgs e)
    {
    tokenSource.Cancel();
    }

    http://binary-studio.com/2015/10/23/...know-about-it/
    https://msdn.microsoft.com/en-us/magazine/gg598924.aspx
    First,solve the problem then write the code

  8. #8
    مدیر بخش آواتار مهرداد صفا
    تاریخ عضویت
    تیر 1391
    محل زندگی
    select Country,City From World where Country.Name=IRAN and City.Contains(حضرت معصومه(ع))
    پست
    1,499

    نقل قول: خروج از حلقه تکرار بی نهایت

    نقل قول نوشته شده توسط alinaghiha مشاهده تاپیک
    خسته نباشید یک کد حلقه تکرار دارم که میخوام با یک کلید یا دکمه ازش خارج بشم لطفا راهنمایی بفرمایید
     private void button1_Click(object sender, EventArgs e)        {

    SetCursorPos(550, 680);
    do
    {
    SetCursorPos(550, 680);
    Thread.Sleep((int)TimeSpan.FromSeconds(5).TotalMil liseconds);
    SendClick();

    }
    while (true);


    }
    سلام.
    همونطور که دوستان اشاره کردند، وقتی شما Thread اصلی برنامه رو در حالت Sleep قرار میدید و یا به هر نحوی مشغولش می کنید به طوری که نمیتونه به Message های ویندوز جواب بده، برنامه حالت not responding پیدا می کنه. فقط در تکمیل پاسخ ها اضافه کنم اگر مثلا قصد دارید ویندوز XP رو هم پشتیبانی کنید و نمیتونید از TPL استفاده کنید، میتونید با استفاده از فرمان Application.DoEvents از برنامه بخواید که پیام های صف شده رو پاسخ بده و بعد حلقه رو ادامه بده.
    به این شکل:

    Stopwatch delayTimer=new Stopwatch();
    do
    {
    SetCursorPos(550, 680);
    delayTimer.Start();
    while(delayTimer.ElapsedMilliseconds<5000)
    {
    Application.DoEvents();
    }
    SendClick();
    delayTimer.Reset();
    delayTimer.Stop();
    }

    while (running);

    void buttonClick(Object sender,EventArgs args)
    {
    running=false;
    }
    چشم ظاهر گر نبیند عیب نیست چشم دل گر ننگرد باید گریست
    **********
    اَلسَّلامُ عَلَى الْحُسَيْنِ وَ عَلى عَلِىِّ بْنِ الْحُسَيْنِ وَ عَلى اَوْلادِ الْحُسَيْنِ وَ عَلى اَصْحابِ الْحُسَيْنِ

تاپیک های مشابه

  1. سوال: خروج از حلقه for
    نوشته شده توسط f_g1348 در بخش VB.NET
    پاسخ: 4
    آخرین پست: شنبه 16 اردیبهشت 1391, 17:27 عصر
  2. قفل نشدن صفحه هنگاه استفاده از حلقه تکرار
    نوشته شده توسط baradar در بخش Java SE : نگارش استاندارد جاوا
    پاسخ: 5
    آخرین پست: چهارشنبه 29 اردیبهشت 1389, 08:55 صبح
  3. سری کسینوس هیپربولیک از صفر تا بی نهایت
    نوشته شده توسط Arman_1367 در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 4
    آخرین پست: دوشنبه 05 شهریور 1386, 23:51 عصر
  4. خروج از حلقه While در هر مرحل از کار
    نوشته شده توسط ali_abbasi22145 در بخش برنامه نویسی در Delphi
    پاسخ: 4
    آخرین پست: دوشنبه 22 آبان 1385, 21:31 عصر
  5. خروج از حلقه
    نوشته شده توسط maleknasab در بخش برنامه نویسی در 6 VB
    پاسخ: 9
    آخرین پست: سه شنبه 11 آذر 1382, 10:52 صبح

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

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