protected void ScheduleRoomRemoval(int roomLiveTime)
        {
            if (RemoveTimer != null)
            {
                RemoveTimer.Dispose();
                RemoveTimer = null;
            }

            if (Log.IsDebugEnabled)
            {
                Log.DebugFormat("Scheduling room removal: roomName={0}, liveTime={1:N0}", Name, roomLiveTime);
            }

            RemoveTimer = ExecutionFiber.Schedule(TryRemoveRoomFromCache, roomLiveTime);
        }
 public IDisposable ScheduleMessage(IMessage message, long timeMs)
 {
     return(ExecutionFiber.Schedule(() => ProcessMessage(message), timeMs));
 }