示例#1
0
        public void Start()
        {
            lock (pausingSync)
            {
                switch (state)
                {
                case State.Started:
                    return;

                case State.Paused:
                    Resume();
                    return;
                }
                machineStartedAt = CustomDateTime.Now;
                foreach (var ownLife in ownLifes.OrderBy(x => x is ICPU ? 1 : 0))
                {
                    this.NoisyLog("Starting {0}.", GetNameForOwnLife(ownLife));
                    ownLife.Start();
                }
                LocalTimeSource.Resume();
                this.Log(LogLevel.Info, "Machine started.");
                state = State.Started;
                var machineStarted = StateChanged;
                if (machineStarted != null)
                {
                    machineStarted(this, new MachineStateChangedEventArgs(MachineStateChangedEventArgs.State.Started));
                }
            }
        }
示例#2
0
 private void Resume()
 {
     lock (pausingSync)
     {
         LocalTimeSource.Resume();
         foreach (var ownLife in ownLifes.OrderBy(x => x is ICPU ? 1 : 0))
         {
             this.NoisyLog("Resuming {0}.", GetNameForOwnLife(ownLife));
             ownLife.Resume();
         }
         this.Log(LogLevel.Info, "Machine resumed.");
         state = State.Started;
         var machineStarted = StateChanged;
         if (machineStarted != null)
         {
             machineStarted(this, new MachineStateChangedEventArgs(MachineStateChangedEventArgs.State.Started));
         }
     }
 }