public override void Update(float fPassTime) { NFIDataList xRemoveKeyList = new NFCDataList();; foreach (KeyValuePair <string, NFIHeartBeat> kv in mhtHeartBeat) { NFIHeartBeat xHeartBeat = (NFIHeartBeat)kv.Value; if (xHeartBeat.NeedRemove()) { xRemoveKeyList.AddString((string)kv.Key); } else { xHeartBeat.Update(fPassTime); } } for (int i = 0; i < xRemoveKeyList.Count(); i++) { mhtHeartBeat.Remove(xRemoveKeyList.StringVal(i)); } }