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

نام تاپیک: اجرا دستورات به صروت پیاپی و ندادن وقفه به دستورات دیگه ؟

  1. #1

    Exclamation اجرا دستورات به صروت پیاپی و ندادن وقفه به دستورات دیگه ؟

    سلام و خسته نباشید...

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

    مشکل اینه که وقتی دستورات به پایان رسید یک مرتبه پیماشگر پر میشه؟
    فکر کردم با قرار دادن کد زیر میشه یه وقفه ایجاد کرد و مقدار پیمایش به حالت نرمال برسه اما نشد...
    Thread.Sleep(100);


    لطفا راهنماییم کنید

  2. #2

    نقل قول: اجرا دستورات به صروت پیاپی و ندادن وقفه به دستورات دیگه ؟

    سلام دوست خوبم

    با استفاده از ترد نوشتیش یا نه؟

    با استفاده از ترد و راحت تر BackgroundWorker میشه لحظه به لحظه از پیش رفت مطلع و نمایش داد.

    لطفا در صورت امکان کد یا توضیح کامل تری رو بیان کنین

    مرسی دوست خوبم

    موفق باشی
    بایت بایت

  3. #3

    نقل قول: اجرا دستورات به صروت پیاپی و ندادن وقفه به دستورات دیگه ؟

    سلام
    دوست خوبم ممنونم از لطفتون...

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

    خودمم دست به کار شدم اما در قسمتی از کار مشکل داشتم.

    در پروژه پیوستی تابع more رو میخوام بذارم در پشت backGroundWorker .

    ممنون میشم کمکم کنید.

    با تشکر

  4. #4

    نقل قول: اجرا دستورات به صروت پیاپی و ندادن وقفه به دستورات دیگه ؟

    سلام دوست خوبم

    میشه چنین کدی نوشت حتی میشه Sleep رو هم برداشت چون تو پردازشهای سنگین خود ترد Sleep رو مدیریت میکنه


    using System.Threading;

    namespace WindowsFormsApplication1
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    Control.CheckForIllegalCrossThreadCalls = false;
    }

    private void button1_Click(object sender, EventArgs e)
    {
    backgroundWorker1.RunWorkerAsync();
    }

    private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
    {
    for (int i = 0; i <= 500; i++)
    {
    Thread.Sleep(1);
    textBox1.Text = "test" + i.ToString();
    int p = (i/ 500) * 100;
    backgroundWorker1.ReportProgress(p);
    }
    }

    private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
    {
    progressBar1.Value = e.ProgressPercentage;
    }
    }
    }



    موفق باشی
    بایت بایت

  5. #5

    نقل قول: اجرا دستورات به صروت پیاپی و ندادن وقفه به دستورات دیگه ؟

    سلام

    باید از
    application.dowork()

    صد در صد جواب میده بزار جای sleep

  6. #6

    نقل قول: اجرا دستورات به صروت پیاپی و ندادن وقفه به دستورات دیگه ؟

    نقل قول نوشته شده توسط Y_Safaiee مشاهده تاپیک
    سلام دوست خوبم

    میشه چنین کدی نوشت حتی میشه Sleep رو هم برداشت چون تو پردازشهای سنگین خود ترد Sleep رو مدیریت میکنه


    using System.Threading;

    namespace WindowsFormsApplication1
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    Control.CheckForIllegalCrossThreadCalls = false;
    }

    private void button1_Click(object sender, EventArgs e)
    {
    backgroundWorker1.RunWorkerAsync();
    }

    private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
    {
    for (int i = 0; i <= 500; i++)
    {
    Thread.Sleep(1);
    textBox1.Text = "test" + i.ToString();
    int p = (i/ 500) * 100;
    backgroundWorker1.ReportProgress(p);
    }
    }

    private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
    {
    progressBar1.Value = e.ProgressPercentage;
    }
    }
    }



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

    خیلی کمکم کرد.


    سلام

    باید از

    application.dowork()


    صد در صد جواب میده بزار جای sleep
    سلام از شما هم تشکر میکنم در کد اصلا نیاز به sleep نداشتم فقط میخواستم در حلقه مکثی ایجاد شود قرار دادم برای مشاهده responsid برنامه بود....

    بازم تشکر میکنم موفق باشید./

  7. #7

    نقل قول: اجرا دستورات به صروت پیاپی و ندادن وقفه به دستورات دیگه ؟

    بعد ببخشید یه سوال دیگه اگه در قسمت زیر

    int p = (i/ 500) * 100;


    تابع یک حلقه نباشه مثلا چند تا تابع رو تحت پیمایش progress قرار بده به چه شکل میشه؟

  8. #8
    کاربر دائمی آواتار aryasoft2872
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    بیرجند
    پست
    399

    نقل قول: اجرا دستورات به صروت پیاپی و ندادن وقفه به دستورات دیگه ؟

    نقل قول نوشته شده توسط samadblaj مشاهده تاپیک
    بعد ببخشید یه سوال دیگه اگه در قسمت زیر

    int p = (i/ 500) * 100;


    تابع یک حلقه نباشه مثلا چند تا تابع رو تحت پیمایش progress قرار بده به چه شکل میشه؟
    مقدار p عدد اختیاریه مثلا فرض کنیم 5 مرحله با زمان تقریبا برابر داریم برای حلقه اول توی ReportProgress می تونید مقدار زیر رو ارسال کنید:
    int p = (i / (500 * 5)) * 100

    حالا درصد یک تا بیست اختصاص داره به حلقه اول و به همین صورت می تونید مراحل دیگه رو هم پیاده کنید.

  9. #9
    کاربر دائمی آواتار aryasoft2872
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    بیرجند
    پست
    399

    نقل قول: اجرا دستورات به صروت پیاپی و ندادن وقفه به دستورات دیگه ؟

    البته اگه وسط DoWork هم خواسستید یکی از اشیای توی UI رو تغییر بدید از این کد می تونید استفاده کنید:
    App.Current.Dispatcher.BeginInvoke((Action)delegat  e
    {
    // Update GUI here.
    }, null);

  10. #10

    نقل قول: اجرا دستورات به صروت پیاپی و ندادن وقفه به دستورات دیگه ؟

    نقل قول نوشته شده توسط aryasoft2872 مشاهده تاپیک
    مقدار p عدد اختیاریه مثلا فرض کنیم 5 مرحله با زمان تقریبا برابر داریم برای حلقه اول توی ReportProgress می تونید مقدار زیر رو ارسال کنید:
    int p = (i / (500 * 5)) * 100

    حالا درصد یک تا بیست اختصاص داره به حلقه اول و به همین صورت می تونید مراحل دیگه رو هم پیاده کنید.
    سلام لطفا شما اصلا حلقه منو نادیده بگیرید فکر کنید توی تابع فقط کد باز کردن کانکشن هست کد زیر به چه شکل میشه ؟

    int p = (i / (500 * 5)) * 100

    با تشکر

  11. #11
    کاربر دائمی آواتار aryasoft2872
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    بیرجند
    پست
    399

    نقل قول: اجرا دستورات به صروت پیاپی و ندادن وقفه به دستورات دیگه ؟

    نقل قول نوشته شده توسط samadblaj مشاهده تاپیک
    سلام لطفا شما اصلا حلقه منو نادیده بگیرید فکر کنید توی تابع فقط کد باز کردن کانکشن هست کد زیر به چه شکل میشه ؟

    int p = (i / (500 * 5)) * 100

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

    (اگه متوجه منظورم نشدید توی محیط Winforms یک progressbar بزارید و استایلش رو بزارید روی Marquee، برای کانشکشن اصولا از این شکل استفاده میشه)

  12. #12

    نقل قول: اجرا دستورات به صروت پیاپی و ندادن وقفه به دستورات دیگه ؟

    بازکردن کانکشن فک نکنم بشه تیکه تیکه اش کرد و از استایل هایی باید استفاده کنید که وابسته به مقدار Progress نباشه با توجه به دیزاین نرم افزارتون خودتون هم می تونید از ایده های دیگه ای استفاده کنید.
    سلام ؛

    بله دقیقا منظورم همین شکل بود ممنونم این ابهامم هم روشن شد!

  13. #13

    نقل قول: اجرا دستورات به صروت پیاپی و ندادن وقفه به دستورات دیگه ؟

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

    1
    int p = (i / (500 * 5)) * 100




    با تشکر
    سلام من بحث رو یه بار دیگه خوندم وچیزی که متوجه شدم این بود که چه جوری میشه یک خط که زمان طولانی را مصرف می کنه رو از doWork استفاده کنی
    مثل connection
    خب معمولا برنامه به صورت خط به خط اجرا میشه و Dowork هم هر جا باشه اجرا میشه
    معمولا این جور زمان ها خظ هایی که زمان بشتر نیاز دارن و برای اینکه برنامه هنگ نکنه از thread یا backGround Worker استفاده میشه

  14. #14

    نقل قول: اجرا دستورات به صروت پیاپی و ندادن وقفه به دستورات دیگه ؟

    سلام من بحث رو یه بار دیگه خوندم وچیزی که متوجه شدم این بود که چه جوری میشه یک خط که زمان طولانی را مصرف می کنه رو از doWork استفاده کنی
    مثل connection
    خب معمولا برنامه به صورت خط به خط اجرا میشه و Dowork هم هر جا باشه اجرا میشه
    معمولا این جور زمان ها خظ هایی که زمان بشتر نیاز دارن و برای اینکه برنامه هنگ نکنه از thread یا backGround Worker استفاده میشه
    اول از شما تشکر میکنم...
    بله من دلیل استفاده از نخ ها و BackGroundWorker رو میدونم فقط این سوال برام پیش اومده بود که اگه قرار بود درصد باز کردن یک کانکشن رو نمایش بدیم به چه شکل میشد که دوست خوبمون آقای aryasoft2872 جواب رو دادن...
    مرسی

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

  1. پاسخ: 4
    آخرین پست: دوشنبه 29 خرداد 1391, 21:25 عصر
  2. اجرا نشدن SQL Server Configuration Manager و چند تا چیز دیگه
    نوشته شده توسط pa-2560 در بخش Management Studio
    پاسخ: 0
    آخرین پست: شنبه 13 خرداد 1391, 21:38 عصر
  3. سوال: قالب دستورات مبتنی بر hook چگونه است و این دستورات چگونه عمل می کنند؟
    نوشته شده توسط deopen در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 1
    آخرین پست: چهارشنبه 15 دی 1389, 17:54 عصر
  4. کلیه دستورات و وقفه های 8086
    نوشته شده توسط Mah در بخش برنامه نویسی اسمبلی خانواده x86
    پاسخ: 6
    آخرین پست: جمعه 08 آذر 1387, 12:33 عصر
  5. دستورات SQL رو بعد ازنصب برنامه با InstallShield چطور اجرا کنم؟
    نوشته شده توسط mehdi_moosavi در بخش برنامه نویسی در Delphi
    پاسخ: 5
    آخرین پست: جمعه 23 دی 1384, 10:26 صبح

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

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