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

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

  1. #1
    کاربر تازه وارد آواتار omidaminiazar
    تاریخ عضویت
    مهر 1391
    محل زندگی
    iran.azarbayjangarbi.mahabad
    سن
    31
    پست
    32

    Question اجرای دو دستور با هم

    با سلام خدمت اساتید محترم برنامه نویسی
    من یک مشکل دارم که وقتی کد زیر اجرا می شود دیگر برنامه قادر به انجام هیچ کار دیگری نیست
    for (int i = 0; i <= 100; i++)
    {
    Thread.Sleep(1000);
    y += 10;
    label1.Location = new System.Drawing.Point(y, x);
    }

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

    با تشکر امید امینی آذر

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

    نقل قول: اجرای دو دستور با هم

    باید از تردها استفاده کنید که طریقه ی استفاده از تردها هم خیلی سادس و میتونید با یه جستجو به نتیجه برسین.

  3. #3
    کاربر تازه وارد آواتار BlackPawn
    تاریخ عضویت
    تیر 1386
    محل زندگی
    تهران
    پست
    53

    نقل قول: اجرای دو دستور با هم

    در vb این طوری این مشکل حل میشه
    Application.DoEvents()

    در داخل حلقه کد بالا رو بنویس حل میشه ولی از Sleep که استفاده کنی چاره ای نداره جز اینکه یه Sleep خودت بسازی به این صورت که
    من کد VB می نویسم خودتون تبدیل کنید

    Private Sub NewSleep(ByVal D As Integer)
    Dim L As Long = Now.Ticks
    Do
    Application.DoEvents()
    If (Now.Ticks - L > D) Then Exit Do
    Loop
    End Sub
    آخرین ویرایش به وسیله BlackPawn : سه شنبه 18 مهر 1391 در 08:44 صبح

  4. #4

    نقل قول: اجرای دو دستور با هم

    استفاده از Threading راه اول شماست .
    راه دیگه استفاده از BackgroundWorker است.
    راه سوم هم استفاده از Timer و قرار دادن کد درون رویداد Tick

  5. #5
    کاربر تازه وارد آواتار omidaminiazar
    تاریخ عضویت
    مهر 1391
    محل زندگی
    iran.azarbayjangarbi.mahabad
    سن
    31
    پست
    32

    نقل قول: اجرای دو دستور با هم

    مشکل با لطف شما حل شد حالا کد ردیف 8 ارور می ده

    Thread th1 = new Thread(
    delegate()
    {
    for (int i = 0; i <= 100; i++)
    {
    Thread.Sleep(1000);
    y += 10;
    label1.Location = new System.Drawing.Point(y, x);
    }

    }
    );
    th1.Start();


    این ارور را می دهد



    مشکل از کجا است
    آخرین ویرایش به وسیله omidaminiazar : دوشنبه 17 مهر 1391 در 19:17 عصر

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

    نقل قول: اجرای دو دستور با هم

    کدتون رو به صورت زیر تغییر بدین درست میشه:
    private void button1_Click(object sender, EventArgs e)
    {
    Thread th1 = new Thread(new ThreadStart(Func));
    th1.Start();
    }

    private void Func()
    {
    this.Invoke(new Action(delegate()
    {
    {
    int x = label1.Location.X;
    int y = label1.Location.Y;
    for (int i = 0; i <= 100; i++)
    {
    Thread.Sleep(1000);
    y += 10;
    label1.Location = new System.Drawing.Point(y, x);
    }
    }
    }));
    }

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

  1. اجرای یک دستور در ساعت مشخص
    نوشته شده توسط once4ever در بخش C#‎‎
    پاسخ: 11
    آخرین پست: دوشنبه 17 مهر 1385, 15:03 عصر
  2. میخواهم Progress Bar نشان بدهم در حین اجرای یک دستور زمان بر SQL
    نوشته شده توسط Babak-Aghili در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 7
    آخرین پست: جمعه 27 مرداد 1385, 18:50 عصر
  3. زمان اجرای یک دستور
    نوشته شده توسط FirstLine در بخش برنامه نویسی در Delphi
    پاسخ: 1
    آخرین پست: دوشنبه 21 دی 1383, 02:21 صبح
  4. اجرای چندین دستور INSERT و یا UPDATE در یک query
    نوشته شده توسط MSYNK در بخش ASP.NET Web Forms
    پاسخ: 7
    آخرین پست: دوشنبه 20 مهر 1383, 09:36 صبح
  5. اجرای یک دستور در زمان معین
    نوشته شده توسط HamidVB در بخش برنامه نویسی در 6 VB
    پاسخ: 3
    آخرین پست: یک شنبه 25 مرداد 1383, 19:28 عصر

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

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