PDA

View Full Version : سوال: آیا میشه از تایمر مثل Thread استفاده کرد؟؟



mohammad_71
پنج شنبه 29 فروردین 1392, 08:51 صبح
سلام دوستان
من میخوام تایمر رو مثل Thread چند ثانیه Sleep کنم آیا میشه؟Thread.Sleep(1);

و میخوام بدونم چه طوری میتونم وقتی تایمر روشن میکنم I به جلو حرکت کنه i++ منظورم اینه

آخه همش ایتم یک رو نشون میده



private void button1_Click(object sender, EventArgs e)
{
timer1.Start();
timer1.Interval = 2000;
}
private void timer1_Tick(object sender, EventArgs e)
{
for (int i = 0; i < listBox1.Items.Count; i++)
{
MessageBox.Show(listBox1.Items[i].ToString());
}
}

amirzandi
پنج شنبه 29 فروردین 1392, 08:56 صبح
مشکلت رو دقیق تر توضیح بده لطفا

mohammad_71
پنج شنبه 29 فروردین 1392, 09:29 صبح
مشکلت رو دقیق تر توضیح بده لطفا

من با یه باتن تایمر رو استارت میکنم

تیامر هر 2 ثانیه کار میده تا اینجا هیچی

ولی مشکل اینه وقتی حلقه رو زدم همش ایتم 1 رو نمایش میده

چون تایمر از اول شروع میکنه پس i رو هم مساوی صفر قرار میده و تو تکرار تایمر بازم ایتم 1 رو نشون میده من میخوام بره ایتم بعدی مثل Thread که راحت میشه ان کارو باش انجام داد من میخوام با تایمر این کارو کنم

mohammad_71
پنج شنبه 29 فروردین 1392, 09:30 صبح
int cnt = -1;
private void timer1_Tick(object sender, EventArgs e)
{
for (int i = 0; i < listBox1.Items.Count; i++)
{
cnt++;
if (cnt == listBox1.Items.Count)
{
cnt = 0;
}
MessageBox.Show(listBox1.Items[cnt].ToString());
}
}


خوم از این روش استفاده کردم ولی میخوام اگر شما راهی بهتر بلدین پیشنهاد بدین

Mahmoud.Afrad
پنج شنبه 29 فروردین 1392, 09:31 صبح
دقیقا بگو برای چی این حلقه رو توی تایمر قرار دادی؟ منظورت از استفاده از تایمر چیه؟ چرا از همون thread اسفاده نمیکنی؟

mohammad_71
پنج شنبه 29 فروردین 1392, 09:36 صبح
دقیقا بگو برای چی این حلقه رو توی تایمر قرار دادی؟ منظورت از استفاده از تایمر چیه؟ چرا از همون thread اسفاده نمیکنی؟

دوست عزیز من میخوام تایمر رو مثل thread چند ثانیه متوقف کنم بعد دوباره ادامه بدم آیا میشه؟

مثل thread که میشه sleep کردش

mohammad_71
پنج شنبه 29 فروردین 1392, 09:39 صبح
یه سوال دیگه هم داشتم من یه treeView دارم و قسمت chekckBoxes رو هم true کردم بعد 10 تا node توش هست من 3 تا از این node ها رو تیک میزنم الان چه طوری میتونم Count این 3 ایتم رو تشخیص بدم؟ یا به طور بهتر بگم چه طوری میتونم Count node های تیک خورده رو تشخیص بدم؟

amirzandi
پنج شنبه 29 فروردین 1392, 09:41 صبح
شما کلا داری اشتباه می ری.. باید به جای Timer از Thread.Timer استفاده کنی و با Delegate مقدار رو نمایش بدی

mohammad_71
پنج شنبه 29 فروردین 1392, 09:52 صبح
شما کلا داری اشتباه می ری.. باید به جای Timer از Thread.Timer استفاده کنی و با Delegate مقدار رو نمایش بدی

بی زحمت میتونی یه مثال بزنی با Delegate ؟

ممنون میشم

amirzandi
پنج شنبه 29 فروردین 1392, 10:00 صبح
اینجا گذاشتم برات http://amirzandi.blog.com/?p=195