PDA

View Full Version : سوال: چرا در این برنامه سرعت تایپ کاهش می یابد؟



StepUp360
جمعه 12 شهریور 1389, 06:18 صبح
با سلام

من یک کد نوشتم که در یک حلقه For یک ستاره رو چاپ کنه اما هر بار که عمل تایپ انجام میشه سرعت تایپ کم میشه...علّت چیست؟

salehbagheri
جمعه 12 شهریور 1389, 07:40 صبح
ببینید شما در کد مربوط به دکمه از این مورد استفاده کردید:


Lable1.Text += "*";


اما شما در هربار تکرار حلقه، توسط فشردن دکمه، مقدار Lable1.Text رو خالی نمیکنید. این امر باعث میشه که در حلقه بعدی، ستاره ها به انتهای رشته قبل اضافه بشن و به همین صورت پس از چند بار تکرار حلقه، یک رشته حاوی هزاران ستاره دارید که طبیعتاً روند پردازش اون کندتر میشه ...

کافیه قبل از شروع حلقه، مقدار Lable1.Text رو به صورت زیر خالی کنید تا مشکل کندی سرعت حل بشه.

Lable1.Text = "";
for(Condition)
{
//TODO:
}

ali_autumnal
جمعه 12 شهریور 1389, 09:38 صبح
کد شما رو من اینطوری تغییر دادم.

در ضمن به width لیبل هم دست نزنید. بزارید در حالت Auto باشه.


label1.Text = "";
if (i == 0)
Message.M();
label1.Show();
for (int x = 0; x < 432; x++)
{
i = -1;
label1.Text += "*";
label1.BackColor = Color.Green;
System.Threading.Thread.Sleep(5);
Application.DoEvents();
if (label1.Width > this.Width)
break;
}
label1.Hide();