用定时器触发事件时会使程序未响应(小虾米求助)

brett1753 2014-03-08 03:03:42
我用System.Timers;设置一个定时1s的定时器,时间到了触发事件,现在每次触发都会使程序未响应,不知道怎么解决。我觉得在waitTime中是把定时器初始化,事件结束时要释放定时器,但我不知道怎么写。所以是不是因为没释放定时器引起的。求助。。。
以下是部分代码
private void waitTime()
{
System.Timers.Timer time = new System.Timers.Timer();
time.Interval = 1000;
time.AutoReset = false;
time.Start();
time.Elapsed += new ElapsedEventHandler(time_Elapsed);
}

private void time_Elapsed(object sender, ElapsedEventArgs e)
{
string selectSql1 = "SELECT * FROM 物主表 WHERE 学号=" + ID;
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=E:\\DB_Student.accdb";
string wuzhuTime = "";
OleDbConnection connection = new OleDbConnection(connectionString);
OleDbCommand command = new OleDbCommand(selectSql1, connection);
connection.Open();
OleDbDataReader reader = command.ExecuteReader();

while (reader.Read())
{
wuzhuTime = reader.GetString(4);
}
reader.Close();

connection.Close();

if (TimeSubtract(wuzhuTime, wupinTime) == false) // 有情况
{
warnForm f1 = new warnForm();
f1.Show();
}
}
...全文
205 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
brett1753 2014-03-10
  • 打赏
  • 举报
回复
跟时间无关,谢谢大家了
wind_cloud2011 2014-03-09
  • 打赏
  • 举报
回复
估计设置一个定时1s的定时器,这个时间太短了,你读取数据库来不及响应
brett1753 2014-03-09
  • 打赏
  • 举报
回复
我发现只要不弹出窗口,这段程序就能工作正常,所以我改了报警方式,不弹窗口,然后就不会死了,但是这到底是为什么呢
threenewbee 2014-03-08
  • 打赏
  • 举报
回复
用System.Windows.Forms中的Timer
shashengduguzhe 2014-03-08
  • 打赏
  • 举报
回复
time.enable=true;

110,549

社区成员

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

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

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