永发信息网

C#的Timer控件的Tick事件是否一个异步(多线程)委托调用

答案:3  悬赏:50  手机版
解决时间 2021-02-07 09:05
  • 提问者网友:爱唱彩虹
  • 2021-02-06 18:11
private void timer1_Tick(object sender, EventArgs e){ //假如这有一堆无意义的代码(假如变态的循环)}我想问,如果Interval时间过了,但事件处理程序里的代码没有执行完,此Tick事件是否会异步调用另一个新的事件处理程序,Tick事件是多线程执行吗?
最佳答案
  • 五星知识达人网友:十鸦
  • 2021-02-06 18:26
Timer控件是单线程运行的
全部回答
  • 1楼网友:慢性怪人
  • 2021-02-06 21:42
timer控件 timer控件主要会用到2个属性一个是enabled和interval enabled主要是控制当前timer控件是否可用 timer1.enabled=false;不可用 timer1.enabled=true;可用 timer1.interval=1000;主要是设置timer2_tick事件的时间,单位为毫秒 例一:到9:00提示去上厕所:( 把timer2.interval=60000;//1分钟 private void timer2_tick(object sender, system.eventargs e){ string cesuotime=datetime.now.datetime.now.toshorttimestring();//得到现在的时间 if(cesuotime.equles("9:00")){ timer1.enabled=false; messagebox.show("该去上厕所了"); timer1.enabled=true;//如果不先把enabled设置成false对话框会一直弹下去 } } 例二:每2小时提示用户看电脑时间已经很久了,需要休息了 把timer2.interval=7200000;//7200秒 private void timer2_tick(object sender, system.eventargs e){ timer1.enabled=false; messagebox.show("需要休息了,开机已经2小时了"); timer1.enabled=true;//如果不先把enabled设置成false对话框会一直弹下去 } }
  • 2楼网友:胯下狙击手
  • 2021-02-06 20:04
这个是单线程的,如果时间过了还没处理完他会等处理完才继续另外一个循环的 话说还有多线程的TIMER的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯