// 添加新列 public void AddNewRow(CEntityWarningInfo entity) { // 记录超过1000条,或者时间超过1分钟,就将当前的数据写入数据库 m_mutexDataTable.WaitOne(); //等待互斥量 DataRow row = m_tableDataAdded.NewRow(); row[CN_DataTime] = entity.DataTime; row[CN_InfoDetail] = entity.InfoDetail; row[CN_InfoDetail] = entity.InfoDetail; if (entity.WarningInfoCodeType.HasValue) { row[CN_ErroCode] = CEnumHelper.WarningCodeTypeToDBStr(entity.WarningInfoCodeType.Value); } else { row[CN_ErroCode] = null; } row[CN_StationID] = entity.StrStationId.ToString(); m_tableDataAdded.Rows.Add(row); if (m_tableDataAdded.Rows.Count >= CDBParams.GetInstance().AddBufferMax) { // 如果超过最大值,写入数据库 base.NewTask(() => { AddDataToDB(); }); } else { // 没有超过缓存最大值,开启定时器进行检测,多次调用Start()会导致重新计数 m_addTimer.Start(); } m_mutexDataTable.ReleaseMutex(); }