private int messageIndex = -1;
private static Dictionary<int, bool> indexMap;
private static int GetAvailableAlertIndex()
{
if (indexMap == null)
{
indexMap = new Dictionary<int, bool>();
}
int maxNum = GetMaxmumAlerts();
for (int i = 0; i < maxNum; i++)
{
if (indexMap.ContainsKey(i))
{
if (indexMap[i])
{
indexMap[i] = false;
return i;
}
}
else
{
indexMap.Add(i, false);
return i;
}
}
return -1;
}
private void ResetIndex()
{
if (messageIndex == -1)
return;
System.Diagnostics.Debug.Assert(indexMap != null);
if (indexMap != null)
{
if (indexMap.ContainsKey(messageIndex))
{
indexMap[messageIndex] = true;
}
}
messageIndex = -1;
}