Protocol protocol = FormatProtocol(strProtocol, LMConstants.PROTOCOLTYPE_COMMAND);
string EquipmentID = protocol.Param.Substring(0, 4);
string currentNow = protocol.Param.Substring(8, 4);
int currentNowValue = Convert.ToInt32(currentNow, 16); if (currentList.Count == 0)
{
//CMMLog.Error("集合中无值,第一次添加值");
currentList.Add(EquipmentID, currentNowValue.ToString() + ";");
}
else
{
bool isExist = false;
for(int i = 0; i < currentList.Keys.Count;i++ )
{
string key = currentList.Keys.ElementAt(i).ToString();
if (key == EquipmentID)
{
isExist = true;
currentList[EquipmentID] += currentNowValue.ToString() + ";";
if (LMUtils.GetStrCount(currentList[EquipmentID]) >= LMConstants.XINTIAOPINLV)
{
string lastCurrent = LMUtils.GetResult(currentList[EquipmentID]).ToString();
currentList.Remove(EquipmentID); //执行插入操作
BLLDeviceManage.InsertCureent(curDeviceCode, lastCurrent, "0");
break;
}
} }
if (isExist == false)
{
CMMLog.Error("循环无此键,插入键值!");
currentList.Add(EquipmentID, currentNowValue.ToString() + ";");
}
这个方法是每个设备1秒来一次数据,约30多个设备,想要每个设备10秒一次插入一次数据库,放入临时变量集合中,累计到10条再取最后一条数据,再清空。这个写的有问题,该怎么改?会包关键字不在字典中,索引超出范围等。
string EquipmentID = protocol.Param.Substring(0, 4);
string currentNow = protocol.Param.Substring(8, 4);
int currentNowValue = Convert.ToInt32(currentNow, 16); if (currentList.Count == 0)
{
//CMMLog.Error("集合中无值,第一次添加值");
currentList.Add(EquipmentID, currentNowValue.ToString() + ";");
}
else
{
bool isExist = false;
for(int i = 0; i < currentList.Keys.Count;i++ )
{
string key = currentList.Keys.ElementAt(i).ToString();
if (key == EquipmentID)
{
isExist = true;
currentList[EquipmentID] += currentNowValue.ToString() + ";";
if (LMUtils.GetStrCount(currentList[EquipmentID]) >= LMConstants.XINTIAOPINLV)
{
string lastCurrent = LMUtils.GetResult(currentList[EquipmentID]).ToString();
currentList.Remove(EquipmentID); //执行插入操作
BLLDeviceManage.InsertCureent(curDeviceCode, lastCurrent, "0");
break;
}
} }
if (isExist == false)
{
CMMLog.Error("循环无此键,插入键值!");
currentList.Add(EquipmentID, currentNowValue.ToString() + ";");
}
这个方法是每个设备1秒来一次数据,约30多个设备,想要每个设备10秒一次插入一次数据库,放入临时变量集合中,累计到10条再取最后一条数据,再清空。这个写的有问题,该怎么改?会包关键字不在字典中,索引超出范围等。
lock