首先你先搞清楚form的timer不是异步的,会阻塞线程,它执行时,你干不了别的事,界面也会卡,所以你可以考虑 用线程去做

解决方案 »

  1.   

    第2种方法好些,但是凡使用Timer要要考虑重入问题,
    如果循环间隔时间到了,但是内部还没有执行完,则Timer会再次触发处理逻辑,
    这样会导致其他异常发生。
    建议将耗时的处理放在线程中去,这样比timer稳妥
      

  2.   

    一样的,所有timer都在主线程中,只不过相当于定义了2个函数,分别挂在2个事件下
    一个执行,会影响另一个的执行
    所以想不干扰,还是要放到线程中去
      

  3.   

    不知道该如何实验哦,计数器的可以做,那个timer控件的不知道如何去评估
      

  4.   

    向指定日期添加时间间隔
    private DateTime G_datetime;//定义时间字段
            private void Frm_Main_Load(object sender, EventArgs e)
            {
                G_datetime=DateTime.Now;//得到系统当前时间
                lab_time.Text = G_datetime.ToString(//显示时间信息
                    "时间:  yyyy年M月d日 H时m分s秒");
            }
            private void btn_AddM_Click(object sender, EventArgs e)
            {
                G_datetime = DateAndTime.DateAdd(//向时间字段中添加一分钟
                    DateInterval.Minute, 1, G_datetime);
                lab_time.Text = G_datetime.ToString(//显示时间信息
                    "时间:  yyyy年M月d日 H时m分s秒");
            }
            private void btn_AddH_Click(object sender, EventArgs e)
            {
                G_datetime = DateAndTime.DateAdd(//向时间字段中添加一小时
                    DateInterval.Hour, 1, G_datetime);
                lab_time.Text = G_datetime.ToString(//显示时间信息
                    "时间:  yyyy年M月d日 H时m分s秒");
            }
            private void btn_addD_Click(object sender, EventArgs e)
            {
                G_datetime = DateAndTime.DateAdd(//向时间字段中添加一天
                  DateInterval.Day, 1, G_datetime);
                lab_time.Text = G_datetime.ToString(//显示时间信息
                    "时间:  yyyy年M月d日 H时m分s秒");
            }