Beispiel #1
0
        static void CancelAndWait(CancellationTokenSource source, IMessageQueueFactory messageFactory, params Task[] tasks)
        {
            source.Cancel();
            Task.WaitAll(tasks);

            InfrastructureFactory.ForceLogFlush();
            InfrastructureFactory.CloseLogTargets();

            if (messageFactory != null)
            {
                if (messageFactory.IsOpen)
                {
                    messageFactory.Dispose();
                }
            }
        }
Beispiel #2
0
        protected override void OnStop()
        {
            logger.Info("Miramar Controller is stopping.");

            serviceSource.Cancel();
            Task.WaitAll(serviceTask, messageTask);
            InfrastructureFactory.ForceLogFlush();

            if (queuePublisher != null)
            {
                queuePublisher.Dispose();
            }

            if (queueFactory != null && queueFactory.IsActive)
            {
                if (queueFactory.IsOpen)
                {
                    queueFactory.Dispose();
                }
            }
        }