使用微软的控件没有出现这个问题,就是一个死循环一直在读数据,你们可以试试
DateTime timeRecord;
private void CheckTime()
{
while (!isStop)
{
try
{
if (DateTime.Now.AddSeconds(-1) > timeRecord)
{
DataTable crt = SqlHelper.ExecuteDataSetText(@"select StationId,A.TerminalId,SwimmerId, CollectTime, HeartBeat,Temperature, Duration, AlarmId
From TerminalData As A Left Outer Join TerminalInfo As B on A.TerminalId = B.TerminalId Where not exists(select null from TerminalData where
A.TerminalId =TerminalId and CollectTime > A.CollectTime ) And [Status] = '使用中' Order by A.TerminalId", null).Tables[0];
//DataTable crt = SqlHelper.ExecuteDataSetProducts("Check_RealTime", null).Tables[0];
dgvRealTime.Rows.Clear();
foreach (DataRow item in crt.Rows)
{
string s = string.Format(@"{0};{1};{2};{3};{4};{5};{6};{7}", item["StationId"], item["TerminalId"], item["SwimmerId"], item["CollectTime"],
item["HeartBeat"], item["Temperature"], item["Duration"], item["AlarmId"]);
dgvRealTime.AddRow(s);
timeRecord = DateTime.Now;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + "查找出错!");
}
}
} |