Ejemplo n.º 1
0
        /// <summary>
        /// Finaliza notificação.
        /// </summary>
        /// <param name="janela">Janela finalizada.</param>
        private static void FinalizarNotificação(Notificação janela)
        {
#if DEBUG
            Console.WriteLine("Finalizando notificação {0}", janela.ToString());
#endif

            lock (typeof(Notificação))
            {
                bool ok = false;

                if (exibição.Count > 0)
                {
                    exibição.Dequeue();

                    while (exibição.Count > 0 && !ok)
                    {
                        try
                        {
                            exibição.Peek().Ativar();
                            ok = true;
#if DEBUG
                            Console.WriteLine("Ativando notificação {0}", exibição.Peek().ToString());
#endif
                        }
                        catch
                        {
                            exibição.Dequeue();
                            ok = false;
#if DEBUG
                            Console.WriteLine("Problemas com a notificação {0}", janela.ToString());
#endif
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Inicia exibição de notificação, se nenhuma outra
        /// estiver em exibição no momento.
        /// </summary>
        private static void IniciarNotificação(Notificação janela)
        {
#if DEBUG
            Console.WriteLine("Iniciando notificação {0}", janela.ToString());
#endif

            lock (typeof(Notificação))
            {
                exibição.Enqueue(janela);

                janela.Enabled = (exibição.Count == 1);
                janela.timer.Enabled = true;
                janela.timer.Start();
            }
        }