讨教一个关于计时器的问题(紧急)

forum2621 2006-06-22 10:36:07
我现在有个计时器,要在达到预定时间引发一些事件,代码如下:
private void Form1_Load(object sender, System.EventArgs e)
{
timer1.Enabled=true;
this.timer1.Tick+=new EventHandler(this.timer1_Tick);
}
private void timer1_Tick(object sender, System.EventArgs e)
{
string[] tim1=new string[100];
tim1.SetValue("10:01:10",0);
tim1.SetValue("10:01:30",1);
tim1.SetValue("10:01:40",2);
//问题是:我现在的字符串就三个成员,如果我要是有上百个成员的话,来怎么处理这个问题呢?
//不要告诉我象下面的方法一样一一列出呀!
//我要是做个while循环倒是可以完成任务,不过这是在考虑系统不死机情况下可以胜任,不过
//系统要死机了,重新启动就会遇到while循环永不满足的问题,这个循环代码如下:
///////////////////////////////////////////////////////
//先在public class里声明一个private int i;
//while(true)
//{ if(tim1[i]==DateTime.Now.ToLongTimeString())
// {
// //do something usefull;
// i++;
// }
//}
///////////////////////////////////////////////////////
////////////////////////////////////////////////////////
成员少时,一个个列举代码如下:

if (tim1[0]==DateTime.Now.ToLongTimeString())
{
//do something
}
if(tim1[1]==DateTime.Now.ToLongTimeString())
{
MessageBox.Show("测试成功?");
}
if (tim1[2]==DateTime.Now.ToLongTimeString())
{
MessageBox.Show("测试成功");
}
}
...全文
143 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
灰太狼 2006-06-22
  • 打赏
  • 举报
回复
private void timer1_Tick(object sender, System.EventArgs e)
{
string[] tim1=new string[100];
tim1.SetValue("10:01:10",0);
tim1.SetValue("10:01:30",1);
tim1.SetValue("10:01:40",2);
}
我不太明白,为什么要让timer定时给tim1赋值呢?
forum2621 2006-06-22
  • 打赏
  • 举报
回复
怎么没人来帮我呀?
祈祷ing!!!!
forum2621 2006-06-22
  • 打赏
  • 举报
回复
补充以下,我做的是winform应用程序,用线程也可以,不过我要在配置比较低的机子上运行,
用线程太耗机子了,很容易死掉的!
liujiwe79 2006-06-22
  • 打赏
  • 举报
回复
我也没看明白,为什么非要在定时器的tick中写这些代码呢?
aSalt 2006-06-22
  • 打赏
  • 举报
回复
如果我要是有上百个成员的话,来怎么处理这个问题呢?
//不要告诉我象下面的方法一样一一列出呀!
---
也许...可能就的一一列出来吧



//我要是做个while循环倒是可以完成任务,不过这是在考虑系统不死机情况下可以胜任,不过
//系统要死机了,重新启动就会遇到while循环永不满足的问题
-------
这就解决死循环的问题,和刚才是两回事,例如重新初始化数组






abiho 2006-06-22
  • 打赏
  • 举报
回复
几个建议:
1、千万不要用"=="来判断是不是达到了时间点,不可能刚刚好等于
2、建议时间点比较的类型测试一下,用字符串快还是用ticks快。(DateTime.Now.Ticks)


//问题是:我现在的字符串就三个成员,如果我要是有上百个成员的话,来怎么处理这个问题呢?
假如你有成千上万个时间点也要看你这些时间点有没有规律,假如有规律处理就会有所不同

?:补充以下,我做的是winform应用程序,用线程也可以,不过我要在配置比较低的机子上运行,
用线程太耗机子了,很容易死掉的!
谁告诉你用线程容易死机的?windows会对线程进行调度的
aSalt 2006-06-22
  • 打赏
  • 举报
回复
不好意思,没看懂

请说清楚你的意图



forum2621 2006-06-22
  • 打赏
  • 举报
回复
写在form_load里就可以了!
写错地方了!

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧