private void Depart() { Log("Depart"); HC_InServer.ObserveChange(-1, ClockTime); HC_InSystem.ObserveChange(-1, ClockTime); if (HC_InQueue.LastCount > 0) { Log("Dequeue"); HC_InQueue.ObserveChange(-1, ClockTime); Start(); } }
private void Arrive() { Log("Arrive"); HC_InSystem.ObserveChange(1, ClockTime); if (HC_InServer.LastCount < NServers) { Start(); } else { Log("Enqueue"); HC_InQueue.ObserveChange(1, ClockTime); } Schedule(Arrive, Exponential.Sample(DefaultRS, TimeSpan.FromHours(1 / HourlyArrivalRate))); }