PDA

View Full Version : بعد از چند ثانبه ادارمه حلقه اجرا نمی شود



shahab_ksh
جمعه 01 تیر 1386, 19:57 عصر
ایراد این کد کجاست خروجی یکباره 3 می شود نه بعد از چند ثانیه 1 و بعد 2 و بعد 3

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





Dim i AsInteger
For i = 1 To 3 Step 1

Threading.Thread.Sleep(2000)
Label1.Text = i
Next

اَرژنگ
جمعه 01 تیر 1386, 20:05 عصر
این کد بعد از ۶ ثانیه ۳ میشود.
اگرچه در حقیقت ۱، ۲، ۳ میشه ولی دلیل اینکه این را نمیبینید این است که ترد را میخوابانید و فقط وقتی که به آخرین مقدار میرسه ترد اصلی آزاد میشود. بعدش هم فرم را پینت میکنه و شما نتیجه آخرین را میبینید.
اگرچه ممکن است که این را درست کرد ولی شما مشکل اصلیتان چی است؟ ساید استفاده از تایمر بیشتر بکارتان بیاد.

shahab_ksh
جمعه 01 تیر 1386, 20:08 عصر
ممنون از پاسختون

می خام بعد از هر 10 ثانیه یه ایمیل زده بشه از چه روشی بهتره استفاده کنم و هر بار شمارنده نشون بده داره کدوم میل رو میزنه یا اینطوری میگم هر وقت کار ارسال میل اول تموم شد یه کانتر بندازه و بره دوم و ...

اَرژنگ
جمعه 01 تیر 1386, 20:49 عصر
http://msdn2.microsoft.com/en-us/library/ms171728.aspx

morteza57
جمعه 01 تیر 1386, 20:54 عصر
ایراد این کد کجاست خروجی یکباره 3 می شود نه بعد از چند ثانیه 1 و بعد 2 و بعد 3

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



Dim i AsInteger
For i = 1 To 3 Step 1

Threading.Thread.Sleep(2000)
Label1.Text = i
Next




اینجوری می تونی تغییرات رو ببینی



Dim i AsInteger
For i = 1 To 3 Step 1

Threading.Thread.Sleep(2000)
Label1.Text = i
Label1.Refresh()
Next