/// <summary>
 /// Return the latest date for a specified state (or null if the state has not been recorded).
 /// </summary>
 /// <param name="state"></param>
 /// <returns></returns>
 public DateTime? GetStateHistory(NiawaThreadState state)
 {
     if (_stateHistory.ContainsKey(state))
         return _stateHistory[state];
     else
         return null;
 }
 /// <summary>
 /// Update state history with a specified state and date
 /// </summary>
 /// <param name="state"></param>
 private void UpdateStateHistory(NiawaThreadState state, DateTime stateDate)
 {
     if (_stateHistory.ContainsKey(state))
         //update if exists
         _stateHistory[state] = stateDate;
     else
         //add if new
         _stateHistory.Add(state, stateDate);
 }