你这么写timer控件应该在主线程里的吧,那你对应的取数据操作也在主线程里呀,在取数据的时候就会卡一下。
可以不需要timer控件,我给你段代码,你根据实际情况改下:
定义委托:private delegate void ShowMsg(string strMsg);
private ShowMsg SM;
PageLoad时给委托实例化:SM += new ShowMsg(SetLabel);
委托方法:private void SetLabel(string strMsg)
{
this.label2.Text=strMsg;//这里可以更新你需要更新的控件
}
1.在主线程里创建取数据线程
Thread t1 = new Thread(new ThreadStart(ThreadFunc));
t1.Start();
2.取数据线程方法
private void ThreadFunc()
{
int i = 0;
while (true)//这里根据你情况自己换个条件也行
{
//这里负责取数据
i++;
this.Invoke(SM, "取数据次数:" + i.ToString());//使用委托,更新主线程中的控件值
Thread.Sleep(5000);//等5秒执行一次
}
}
这样就不会一卡一卡的了
追问我现在不懂的就是用哪个方法不断调用某个方法...另外怎么控制它们的先后顺序....我是做数据同步的..我要做个应用程序不断取数据然后调用我的服务....谢谢...呵呵