public bool Validate(SimpleTask task) { bool isValid = false; bool isCheckerListLocked = true; do { if (Monitor.TryEnter(TheBestTaskNameCheckerInTheWorld.Names, 0)) { isCheckerListLocked = true; try { lock (TheBestTaskNameCheckerInTheWorld.Names) { isValid = !TheBestTaskNameCheckerInTheWorld.Check(task.Name); if (isValid) { TheBestTaskNameCheckerInTheWorld.Names.Add(task.Name); } } } finally { Monitor.Exit(TheBestTaskNameCheckerInTheWorld.Names); isCheckerListLocked = false; } } } while (isCheckerListLocked); return(isValid); }
public void Patch(SimpleTask task) { if (task == null) { throw new ArgumentNullException("Task is null."); } Name = task.Name; Status = task.Status; LastUpdateDateTime = task.LastUpdateDateTime; LastUpdateBy = task.LastUpdateBy; NumberOfUpdates = task.NumberOfUpdates; }