public void Reset()
{
if (_baseKey != null)
{
string name = _baseKey.Name;
int i = name.IndexOf("\\") + 1;
name = name.Substring(i);
_baseKey.Close();
_baseKey = null;
try
{
_rootKey.DeleteSubKeyTree(name);
}
catch { } // ignore possible failures
}
_usageCount = 0;
_firstUseDate = DateTime.UtcNow;
_lastUseDate = _firstUseDate;
_invalid = false;
}