コード例 #1
0
ファイル: Loader.cs プロジェクト: Homhomich/Task_8_lib
 internal void AddMoreMaterials(Conveyor conveyor)
 {
     IsFree = false;
     conveyor.UpdateState(ConveyorState.AddMaterials);
     Thread.Sleep(1000);
     IsFree = true;
 }
コード例 #2
0
ファイル: Mechanic.cs プロジェクト: Homhomich/Task_8_lib
 public void Repair(Conveyor conveyor)
 {
     lock (Locker)
     {
         IsFree = false;
         conveyor.UpdateState(ConveyorState.InRepairing);
         Thread.Sleep(2000);
         IsFree = true;
     }
 }
コード例 #3
0
        public async void AddNewConveyor()
        {
            var conveyor = new Conveyor();

            conveyor.AddMaterials += HandleAddMaterials;
            conveyor.Repair       += HandleRepair;
            conveyor.Update       += HandleUpdate;
            Conveyors.Add(conveyor);
            ConveyorAdded?.Invoke(conveyor);
            await Task.Run(conveyor.StartWorking);
        }
コード例 #4
0
        private void HandleUpdate(Conveyor caller, ConveyorState state)
        {
            var pos = Conveyors.FindIndex(conveyor => conveyor == caller);

            UpdateView?.Invoke(pos, state, Loader.IsFree, Mechanic.IsFree);
        }
コード例 #5
0
 private void HandleRepair(Conveyor caller)
 {
     Mechanic.Repair(caller);
 }
コード例 #6
0
 private void HandleAddMaterials(Conveyor caller)
 {
     Loader.AddMoreMaterials(caller);
 }