/// <summary>
        /// 吃食物
        /// </summary>
        public void Eat(F food)
        {
            _stoped = false;

            _lock.Read(() =>
            {
                if (!CanWorking())
                {
                    return;
                }
                if (!_foods.TryAdd(food))
                {
                    return;
                }
                _enzyme.AllowOne();
            });
        }
Example #2
0
 /// <summary>
 /// 将方法加入到队列中排队执行
 /// </summary>
 /// <param name="action"></param>
 public void Queue(Action action)
 {
     _syncActions.Enqueue(action);
     _pipeline.AllowOne();
 }