/// <summary> /// 向集合中插入一个等待对象 /// </summary> /// <param name="waitObject">等待对象</param> public static void InsertWaitObject(WaitObject waitObject) { var temp = ListWaitObject.FirstOrDefault(w => w.Name == waitObject.Name); if (temp != null) { ListWaitObject.Remove(temp); } waitObject.Result = false; waitObject.IsFinished = false; ListWaitObject.Add(waitObject); }
/// <summary> /// 执行等待操作,即阻塞当前线程,直到指定等待对象的IsFinished属性为true /// </summary> /// <param name="waitObject">等待对象</param> public static void DoWaitObject(WaitObject waitObject) { mCount = 0; while (true) { if (waitObject.IsFinished || mCount > MaxTime) { break; } mCount++; Thread.Sleep(1000); } }