سلام
من می خوام برای برنامه ام یک پروگرس بار بذارم، اما موقع اجرای برنامه (همون قسمتی که باید پروگرس بارم کار کنه) از حرکت می ایسته و هیچ کاری نمی کنه،(از این خط های سبز توش نمیاد و بره)
به نظرتون باید چه کار کنم؟
سلام
من می خوام برای برنامه ام یک پروگرس بار بذارم، اما موقع اجرای برنامه (همون قسمتی که باید پروگرس بارم کار کنه) از حرکت می ایسته و هیچ کاری نمی کنه،(از این خط های سبز توش نمیاد و بره)
به نظرتون باید چه کار کنم؟
سلام
برای این کار باید یک تایمر ایجاد کنی تا در هر ثانیه به اون اضافه بشه.
یه مثال برات گذاشتم.
آخه مشکلم اینه که وقتی داره کار انجام میشه اصلا تایمر تیک عمل نمی کنه!!!!
برک پوینتی که میذارم اونجا اصلا فعال نمیشه!!(در هنگام دیباگ)
اگه تایمر خود را از طریق کد ایجاد کرده باشید بایستی تابع تیکی که براش می نویسید برای Event مربوطه هندل کنید
به عنوان مثال :
Timer Obj_Timer = new Timer();
Obj_Timer.Enabled = true;
Obj_Timer.Interval = 1000;
Obj_Timer.Tick += new EventHandler(My_Timer_Tick);
private void My_Timer_Tick(object sender, EventArgs e)
{
/// دستورات تایمر
}
شما اصلا تايمر رو Start كردي؟
فكر كنم اول بايد تابع ()Start رو فراخوني كني.
سلام
کار من انجام یک query از دیتابیس و لود کردن نتیجه در دیتاگرید است. میشه در مورد این background worker توضیح بدی؟
اگر چندین پروسه داشته باشی که نیاز به پروگرس بار داره چی؟ من نتونستم بفهمم چند کار رو چه شکلی با background worker هندل کنم؟
کسی نظری نداره؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
backgroundWorker دارای چند event مهم هست که اصلیاش DoWork و RunWorkerCompleted هستن.شما اول باید در load برنامت متد RunWorkerAsync را اجرا کنی در تابع هندلر رویداد DoWork شما میتوانی به پروگرسبارت مقدار بدی ،مثلا ماکزیمم رو 5 بگیر سپس به این شکل عمل کن:
کانکشن که باز شدمقدار پروگرسبارت رو 2 کن ،زمانی که متد execute دیتاآداپترت و یا هر شی دیگرت اجرا شد مقدار پروگرسبارت رو 4 کن و زمانی که کانکشنت رو بستی مقدار پروگسبارت رو 5 کن.
در رویداد RunWorkerCompleted شی backgroundWorker این و اون پروگرسبارت رو نابود کن به همین راحتی!!!!!
سلام
میشه کدش رو هم بذارید. ممنون میشم