/// <summary> /// 设置值 /// </summary> /// <param name="value">值</param> /// <param name="callback">返回回调</param> /// <returns>true设置成功, false 此对象已经停止工作了</returns> public bool Set(SET value, Action <RES> callback) { lock (lockObj) { if (Target == null) { return(false); } if (State == FiberFlag.Complete) { return(false); } ResCallbackModel tmp = new ResCallbackModel() { ResCallBack = callback, value = value }; SetQueue.Enqueue(tmp); return(true); } }
public bool ThreadRun() { lock (lockObj) { model = null; if (SetQueue.Count > 0) { model = SetQueue.Peek(); } else { return(false); } if (model != null) { Console.WriteLine("Id:" + System.Threading.Thread.CurrentThread.ManagedThreadId); RES res = Resume(model.value); if (model.ResCallBack != null) { model.ResCallBack(res); } if (state == FiberStateEnum.FiberStopped) { SetQueue.Clear(); State = FiberFlag.Complete; } SetQueue.Dequeue(); return(true); } SetQueue.Dequeue(); return(false); } }