PDA

View Full Version : progressbar یا background worker



hana2064
جمعه 25 بهمن 1387, 11:20 صبح
با سلام به همه دوستان
تو فرم گزارشگیری از کریستال استفاده کردم که برای گزارشات بزرگ زمانی که برای ایجاد گزارش طی می شه چند ثانیه ای طول میکشه اگه بخوایم این زمانو به کاربر نشون بدیم باید از progress استفاده کنیم یا backworker?
در موردش جستجو کردم ولی چون خیلی مبتدی هستم ازشون سردرنیاوردم .
ممنون میشم از راهنمایتون درباره این دو کامپوننت و طرز استفاده شون:لبخندساده::لبخندساده:

shahab_ss
جمعه 25 بهمن 1387, 23:03 عصر
سلام ،
شما میتونی از backgroundWorker استفاده کنی.

دوستمون آقای Masoud_TB (http://barnamenevis.org/forum/member.php?u=52228) زحمت کشیدن و این مطالب رو جمع آوری کردند، جواب شما در این پست هست.
http://barnamenevis.org/forum/showthread.php?t=109257

hana2064
شنبه 26 بهمن 1387, 10:54 صبح
با تشكر از توجه شما
لينكي كه شما دادي و همه لينكهاي ديگه كه به اين موضوع ربط داره ديدم ولي نتونستم استفاده كنم . اين لينك شامل يه سري فيلم اموزشي هست كه با سرعت افتضاح اينترنت نمي تونم اونارو ببينم.
يه مطلب خيلي ابتدايي براي اشنايي با اين قضيه نياز دارم كه هنوز پيدا نكردم.

majid325
یک شنبه 27 بهمن 1387, 02:29 صبح
خوب فيلم رو نگه نكن ، نمونه رو دانلود كن.

sinpin
یک شنبه 27 بهمن 1387, 08:08 صبح
يه مطلب خيلي ابتدايي براي اشنايي با اين قضيه نياز دارم كه هنوز پيدا نكردم.

این مثال رو ببینید:
http://barnamenevis.org/forum/showpost.php?p=485225

hana2064
دوشنبه 28 بهمن 1387, 23:46 عصر
ممنونم ازتون. مثال شمارو قبلا تو سیستم ذخیره کرده بودم و اجرا هم کردم .
برنامه من تحت شبکه است و برخی مواقع برای ارتباط با دیتابیس و گزارشگیریها چند ثانیه ای طول میکشه .
مثال شما نوار progress نداشت . من تونستم دو متد رو بطور ناهمزمان اجرا کنم و نوار progress که باید به کاربر درصد انجام کارو نشون بده هر کار می کنم حرکت نمیکنه . مثال اقای طباطبایی رو هم دانلود کردم که دارم روش کار میکنم اما هنوز که ...

اگه یه مثالی بذارین که این دو موردو باهم داشته باشه خیلی خیلی ممنون میشم:ناراحت::ناراحت::افسرده: :افسرده::افسرده::افسرده:

Mostafa_Nosratniya
شنبه 17 بهمن 1388, 14:18 عصر
public void ring()
{
if(!(progressBar1.Value==progressBar1.Maximum))
progressBar1.Value +=1;
Application.DoEvents();
}

public delegate void ringdel ();

private void button1_Click(object sender, System.EventArgs e)
{
int q=100;

ringdel d =new ringdel(ring );
progressBar1.Value =0;
progressBar1.Maximum=q*q*q;

for (int j=0;j< q;j++)
for ( int i=0;i<q;i++)
for ( int k=0;k<q;k++)
{
//label1.Text = (j+k).ToString();
this.Invoke (d);
}
}
یک مثال ساده استفاده از progress bar .
استفاده از delegate برای این است که برنامه قابل پاسخ گویی به کاربر حین محاسبه باشد.

H2K
شنبه 17 بهمن 1388, 18:07 عصر
http://www.codersengine.com/images/photo/backworker.png (http://www.codersengine.com/tutorials-forum.html?func=view&id=12&catid=8#12)


سلام ،
فکر کنم این (http://www.codersengine.com/tutorials-forum.html?func=view&id=12&catid=8#12)نمونه کمکت کنه ، موفق باشین