View Full Version : بعد از چند ثانبه ادارمه حلقه اجرا نمی شود
shahab_ksh
جمعه 01 تیر 1386, 20: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, 21:05 عصر
این کد بعد از ۶ ثانیه ۳ میشود.
اگرچه در حقیقت ۱، ۲، ۳ میشه ولی دلیل اینکه این را نمیبینید این است که ترد را میخوابانید و فقط وقتی که به آخرین مقدار میرسه ترد اصلی آزاد میشود. بعدش هم فرم را پینت میکنه و شما نتیجه آخرین را میبینید.
اگرچه ممکن است که این را درست کرد ولی شما مشکل اصلیتان چی است؟ ساید استفاده از تایمر بیشتر بکارتان بیاد.
shahab_ksh
جمعه 01 تیر 1386, 21:08 عصر
ممنون از پاسختون
می خام بعد از هر 10 ثانیه یه ایمیل زده بشه از چه روشی بهتره استفاده کنم و هر بار شمارنده نشون بده داره کدوم میل رو میزنه یا اینطوری میگم هر وقت کار ارسال میل اول تموم شد یه کانتر بندازه و بره دوم و ...
اَرژنگ
جمعه 01 تیر 1386, 21:49 عصر
http://msdn2.microsoft.com/en-us/library/ms171728.aspx
morteza57
جمعه 01 تیر 1386, 21: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
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.