View Full Version : مبتدی: اجرای یک حلقه هر 5 ثانیه یکبار
shahin60
شنبه 05 مهر 1393, 22:37 عصر
سلام به دوستان عزیز
یه حلقه دارم میخوام هر 5 ثانیه یه i++ بشه
مثل این:
for (int i = 0; i < 50; i++)
{
lbl_Msg.Text = dt1[i]["NAME"].ToString();
}
ممنون میشم راهنمایی کنید.
fakhravari
شنبه 05 مهر 1393, 23:01 عصر
System.Threading.Thread.Sleep(5000);
ciph3r
شنبه 05 مهر 1393, 23:04 عصر
خوب دوست عزیز شما یه تایمر بزار و با قرار دادن شرط if داخل حلقت میتونی این کار رو انجام بدی ولی برای این کار حلقه while هم بد نیست
shahin60
شنبه 05 مهر 1393, 23:06 عصر
System.Threading.Thread.Sleep(5000);
اینو تست کرده بودم سیستم کلا متوقف میشه مثل ساعت و سایر پردازش ها
shahin60
شنبه 05 مهر 1393, 23:07 عصر
خوب دوست عزیز شما یه تایمر بزار و با قرار دادن شرط if داخل حلقت میتونی این کار رو انجام بدی ولی برای این کار حلقه while هم بد نیست
بیشترراهنمایی کنید
samanelf
شنبه 05 مهر 1393, 23:30 عصر
یه تایمر اضافه کن و تو اونتش دستور مرود نظر رو بنویس
shahin60
شنبه 05 مهر 1393, 23:35 عصر
اونطوری حلقه هر 5 ثانیه اجرا میشه من میخوام واحد حلقه یکی اضافه بشه i++
حمید رضا رحیمیان
شنبه 05 مهر 1393, 23:36 عصر
http://stackoverflow.com/questions/17418820/implementing-a-loop-using-a-timer-in-c-sharp
http://stackoverflow.com/questions/17745594/c-sharp-mix-timer-and-loop
جستجو کنید بیشتر به نتیجه میرسید
samanelf
شنبه 05 مهر 1393, 23:41 عصر
خوب با یه دستور شرطی این کار رو بکنین نمونه کد حلقه رو بذارین لطفا کمک بیشتری بکنم
omid nasri
شنبه 05 مهر 1393, 23:46 عصر
اگه نمیخواید از حلفه استفاده کنید از نخ استفاده کنید.
اینم کلاسش :
system.threading;
shahin60
شنبه 05 مهر 1393, 23:49 عصر
من که حلقه نمونه رو گذاشتم بگید به چه شکل؟ از نخ که استفاده می کنم ساعت برنامه متوقف میشه
aminmousavi
یک شنبه 06 مهر 1393, 02:34 صبح
سلام دوست عزیز . ساده ترین راه استفاده از تایمر هست . برای پیاده سازیش به این شکل عمل کنید :
- یک متغیر int i به صورت Global تعریف کنید
public partial class Form11 : Form
{
int i = 0;
.
.
.
- interval تایمر رو برابر با 5000 قرار بده
- کد Tick تایمرت هم میشه :
if (i < 50)
{
i++;
}
gerdioz
یک شنبه 06 مهر 1393, 15:37 عصر
سلام از همون نخ استفاده کن فقط قبلش تو فرمت این و بزار
CheckForIllegalCrossThreadCalls = false;
shahin60
یک شنبه 06 مهر 1393, 19:33 عصر
آقا نشد که نشد... راهنمایی کنید؟
fakhravari
یک شنبه 06 مهر 1393, 22:43 عصر
shahin60 (http://barnamenevis.org/member.php?196103-shahin60) :متفکر:
فکر کنم مشکل از خودتونه
shahin60
یک شنبه 06 مهر 1393, 23:11 عصر
دوستان نرید تو حاشیه
یه روش منطقی البته قابل اجرا لطفا بگیذ
همه رو تست کردم نتیجه نداد
دلتنگ اسمان
دوشنبه 07 مهر 1393, 05:26 صبح
دوستان نرید تو حاشیه
یه روش منطقی البته قابل اجرا لطفا بگیذ
همه رو تست کردم نتیجه نداد
کدی که در پست شماره 12 (aminmousavi (http://barnamenevis.org/member.php?338620-aminmousavi))گفته شده رو من تست کردم ، جواب داد . اول برنامه رو بصورت خیلی ساده یعنی یه حلقه for ساده و یه تایمر تست کن بعد گسترش بده.
shahin60
دوشنبه 07 مهر 1393, 17:11 عصر
کدی که در پست شماره 12 (aminmousavi (http://barnamenevis.org/member.php?338620-aminmousavi))گفته شده رو من تست کردم ، جواب داد . اول برنامه رو بصورت خیلی ساده یعنی یه حلقه for ساده و یه تایمر تست کن بعد گسترش بده.
مشکل اینه که کد اصلی رو کجا بزارم چون من تو کد اصلی اطلاعات از بانک می خونم و با این روش وقتی تو تایمر بزارم هر دفعه اطلاعات رفرش میشه
juza66
دوشنبه 07 مهر 1393, 18:22 عصر
سلام
شما دقیقا هر 5ثانیه می خواهید یک i++انجام بدید؟!
در دیتابیس یا در دیتا گرید؟!
متوجه این کد نشدم؟!
dt1[i]["NAME"].ToString();
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.