PDA

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();