protected override void OnShutdown() { if (IsInitialized) { var wait = new AutoResetEvent(false); IOTaskPool.ExecuteInContext(() => { World.Instance.Stop(true); World.Instance.Save(); wait.Set(); }); wait.WaitOne(-1); } IPCAccessor.Instance.Stop(); if (IOTaskPool != null) { IOTaskPool.Stop(); } ClientManager.Pause(); foreach (var client in ClientManager.Clients.ToArray()) { client.Disconnect(); } ClientManager.Close(); }
public virtual void CancelScheduledShutdown() { IsShutdownScheduled = false; ScheduledShutdownDate = DateTime.MaxValue; IOTaskPool.RemoveTimer(ScheduledShutdownTimer); ScheduledShutdownTimer = null; }
public virtual void ScheduleShutdown(TimeSpan timeBeforeShuttingDown) { IsShutdownScheduled = true; ScheduledShutdownDate = DateTime.Now + timeBeforeShuttingDown; if (ScheduledShutdownTimer != null) { IOTaskPool.RemoveTimer(ScheduledShutdownTimer); } ScheduledShutdownTimer = IOTaskPool.CallPeriodically((int)TimeSpan.FromSeconds(1).TotalMilliseconds, CheckScheduledShutdown); }
public virtual void Start() { Running = true; Initializing = false; IOTaskPool.CallPeriodically((int)TimeSpan.FromSeconds(10).TotalMilliseconds, KeepSQLConnectionAlive); var evnt = ServerStarted; if (evnt != null) { evnt(); } }
public override void Start() { base.Start(); logger.Info("Start Ipc Server"); IpcHost.Start(); logger.Info("Starting Console Handler Interface..."); ConsoleInterface.Start(); logger.Info("Start listening on port : " + Port + "..."); m_host = HostAutoDefined ? IPAddress.Loopback.ToString() : Host; ClientManager.Start(m_host, Port); IOTaskPool.Start(); StartTime = DateTime.Now; }
public override void Start() { base.Start(); logger.Info("Start Auto-Save Cyclic Task"); IOTaskPool.CallPeriodically(AutoSaveInterval * 1000, World.Instance.Save); logger.Info("Starting Console Handler Interface..."); ConsoleInterface.Start(); logger.Info("Starting IPC Communications ..."); IPCAccessor.Instance.Start(); logger.Info("Start listening on port : " + Port + "..."); ClientManager.Start(Host, Port); IOTaskPool.Start(); StartTime = DateTime.Now; }
protected virtual void OnShutdown() { IOTaskPool.Stop(); }