再次发贴求助!timer

qingtianzhuren 2011-07-14 11:41:52
两个页面,FOMR2上有两个LABLE,点击form1上的控件,开始计时,运行某方法,结束后计时停止,在计时过程中,lable中的文字后面“。”不动按顺序增加1,达到4个恢复为0,表示正在运行,为此专门写了一个关于TIMER控制的类,可实际过程中,好像要等到目标方法运行完了,才开始计时的样子,最后只进示结果,“成功”或者“失败”,没有看到“。”的增减,怀疑是不是TIMER启动过慢,不知如何改?


//写这个类,目的是实现两个LABEL共用,两个LABEL显示两个方法的进度情况
public class Label_timer
{
System.Timers.Timer timer=new System.Timers.Timer();
public Label label;
public string strDefault="";
public bool Is_stop = false;
int nRepeatCount = 0;
public bool Is_login = false;
public Label_timer(Label label,string str)
{
strDefault = str;
this.label = label;
timer.Interval = 300;
//timer.Elapsed += new System.EventHandler(timer_Tick);
timer.Elapsed += new ElapsedEventHandler(timer_Tick);
timer.Enabled = true;
//timer.Start();
}
public void Monitor()
{
if (!Is_stop)
{
nRepeatCount++;

if (nRepeatCount > 4)
{
nRepeatCount = 0;
label.BeginInvoke(new MethodInvoker(delegate() { label.Text = strDefault; }));
}
else
{
label.BeginInvoke(new MethodInvoker(delegate() { label.Text += "."; }));
}
}
else
{
if (Is_login)
{
label.BeginInvoke(new MethodInvoker(delegate() { label.Text = strDefault + "成功"; }));

//timer.Elapsed -= new System.EventHandler(timer_Tick);
}
else
{
label.BeginInvoke(new MethodInvoker(delegate() { label.Text = strDefault + "失败"; }));

//timer.Elapsed -= new System.EventHandler(timer_Tick);
}
timer.Stop();
}
}
void timer_Tick(object sender, System.EventArgs e)
{
Thread threadMonitor = (new Thread(new ThreadStart(Monitor)));
threadMonitor.Start();


}

}


//调用:

private void button2_Click(object sender, EventArgs e)
{
this.Hide();//当前页隐藏
Label_timer lt=new Label_timer(Form2.CreatForm2().label1, "连接数据库");
//操作FORM2页中的LABEL进度显示

class1().Login();//目标程序登录
if (class1().a.login)//判断登录是否成功
{
lt.Is_login = true;
}
else
{
lt.Is_login = false;
}
lt.Is_stop = true;


}


...全文
66 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qingtianzhuren 2011-07-15
  • 打赏
  • 举报
回复
还是不行,目标都处理完了,界面显示才开始即时呢
threenewbee 2011-07-14
  • 打赏
  • 举报
回复
用 System.Threading.Timer

110,534

社区成员

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

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

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