用定时器触发事件时会使程序未响应(小虾米求助)
我用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();
}
}
------解决方案--------------------time.enable=true;
------解决方案--------------------用System.Windows.Forms中的Timer
------解决方案--------------------估计设置一个定时1s的定时器,这个时间太短了,你读取数据库来不及响应