关于timer的问题 关于timer的疑问,在timer的Elapsed事件中new了一窗体,这个窗体显示后总是显示繁忙,如果改用委托的话,就不会了。这个是为什么?timer 不就是另开了一个线程吗,为什么会出现卡的情况? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 其实Timer控件的原理就是利用了线程,首先设置一个 tick ,也就是没过多少毫秒执行一次 Timer 事件。至于Timer事件就是你想要做的事了。 恩,这个我知道。我的意思是:在timer中每过3秒显示一个窗体,窗体是显示了,但是窗体中的按钮都用不了;但是把显示窗体的代码放到委托中,窗体的按钮就可以用了。用的this.invoke(委托);我的意思是,timer就是另开了一个线程啊,而委托也是委托给timer线程。为什么委托就能实现效果了呢 void alarmTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { alarmTimer.Enabled = false; //foreach (DataRow dr in NotesDt.Rows) //{ // try // { // if (dr["IsAlarm"].ToString().Equals("提醒") && dr["NoteTime"].ToString().Equals(DateTime.Now.ToString()))// (int)(DateTime.Parse(dr["NoteTime"].ToString()).Ticks - DateTime.Now.Ticks) < 2) // { // if (myAlarmForm == null || !myAlarmForm.IsHandleCreated) // { // myAlarmForm = new AlarmForm(); // } // myAlarmForm.Activate(); // myAlarmForm.changNote(dr["NoteText"].ToString()); // myAlarmForm.Show(); // myAlarmForm.Refresh(); // myAlarmForm.MoveForm(); // } // } // catch // { } //} this.Invoke(myShowNote); alarmTimer.Enabled = true; }代码就是这样了 网站配置了host,用域名可以访问,用ip访问的时候登录之后不跳转 C# 图像压缩 用C#调用packet.dll里的函数出错,请高手帮忙调一下! 菜鳥求教!谢谢 急等一个不太复杂的问题? xmlhttp接收汉字乱码问题 请问C#有没有String.join()反函数,就是根据带某个分隔符的字符串形成一数组 怎么样在两个页面里用session传值! 弱弱的问:什么是窗体句柄? 请问各位对封闭式开发有何见解? 大家帮我看看我的代码怎么写,关于创建一个连接数据库的类。谢谢! C# 生成随机数相关问题求解
{ alarmTimer.Enabled = false; //foreach (DataRow dr in NotesDt.Rows)
//{
// try
// {
// if (dr["IsAlarm"].ToString().Equals("提醒") && dr["NoteTime"].ToString().Equals(DateTime.Now.ToString()))// (int)(DateTime.Parse(dr["NoteTime"].ToString()).Ticks - DateTime.Now.Ticks) < 2)
// {
// if (myAlarmForm == null || !myAlarmForm.IsHandleCreated)
// {
// myAlarmForm = new AlarmForm();
// }
// myAlarmForm.Activate();
// myAlarmForm.changNote(dr["NoteText"].ToString());
// myAlarmForm.Show();
// myAlarmForm.Refresh();
// myAlarmForm.MoveForm();
// }
// }
// catch
// { }
//}
this.Invoke(myShowNote);
alarmTimer.Enabled = true;
}
代码就是这样了