C#中我想让timer_tick停止后再执行后面的语句,求教高手怎么做?就是说不让timer后面的语句和它并行执行

 我来答
烟卷不抽烟
2011-12-02 · TA获得超过497个赞
知道小有建树答主
回答量:95
采纳率:0%
帮助的人:177万
展开全部
其实一般没人这么用。。你在timer_tick执行的最后一句,timer.Stop();后面加一行timer.Enable = false;
然后在主线程里用这段代码
while (timer.Enabled)
{
System.Threading.Thread.Sleep(10); // 如果主线程是System线程的话.
Application.DoEvents(); // 保证应用的事件处理.
}
newman325
2011-12-01 · 超过32用户采纳过TA的回答
知道答主
回答量:71
采纳率:0%
帮助的人:77.1万
展开全部
只执行一次timer_tick,在里面加上timer.Stop();同时加上你的语句,变成一次性的了,不如直接开线程了
追问
你好,是这样的,我的timer_tick执行30次,30次后停止,然后下一条语句是个写xml文件其中一个元素,由于xml文件中元素位置是固定的,如果把这个语句放在timer里面的话,会造成顺序混乱。用for循环,里面thread.sleep倒是可以,但是我还想每次更新Label控件的值,一旦用了thread,sleep,label更新就看不到了。比如
for(i=1;i<5;i++)
{
thread.sleep(1000);
label1,text=i.tostring();
}
这个label就不能实时更新
追答
明白你的意思了,执行30次刷新label后写xml文件,很好解决,控制执行次数不就结了?
int times=30;
private void timer1_Tick(object sender, EventArgs e)
{
if(times<=0)
{
timer1.Stop();
WriteXml();
return;
}
times--;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jack87918
2011-12-02 · TA获得超过2048个赞
知道小有建树答主
回答量:1618
采纳率:100%
帮助的人:1454万
展开全部
private void Form1_Load(object sender, EventArgs e)
{
timer1.Start();
//你要在timer1_Tick停止后执行的语句
}
private void timer1_Tick(object sender, EventArgs e)
{
//timer1要执行的操作
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式