Esempio n. 1
0
        /// <summary>
        /// Потоковая функция снятия с отображения оркна
        /// </summary>
        /// <param name="data">Аргумент при запуске потока</param>
        public void ThreadProcHide(object data)
        {
            INDEX_SYNCSTATE indx = INDEX_SYNCSTATE.UNKNOWN;

            while (!(indx == INDEX_SYNCSTATE.CLOSING))
            {
                indx = (INDEX_SYNCSTATE)WaitHandle.WaitAny(new AutoResetEvent[] { m_arSyncState[(int)INDEX_SYNCSTATE.CLOSING], m_arSyncState[(int)INDEX_SYNCSTATE.HIDE] });
                indx = indx == INDEX_SYNCSTATE.CLOSING ? INDEX_SYNCSTATE.CLOSING : indx + 1;
                Console.WriteLine(@"FormMainBase::ThreadProcHide () - indx=" + indx.ToString() + @" - ...");

                switch (indx)
                {
                case INDEX_SYNCSTATE.CLOSING:     // завершение потоковой функции
                    break;

                case INDEX_SYNCSTATE.HIDE:     // снять с отображения окно
                    hide();
                    break;

                default:
                    break;
                }
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Потоковая функция отображения оркна
        /// </summary>
        /// <param name="data">Аргумент при запуске потока</param>
        public void ThreadProcShow(object data)
        {
            INDEX_SYNCSTATE indx = INDEX_SYNCSTATE.UNKNOWN;

            while (!(indx == INDEX_SYNCSTATE.CLOSING))
            {
                //Ожидать разрешения на выполнение операции
                indx = (INDEX_SYNCSTATE)WaitHandle.WaitAny(new AutoResetEvent [] { m_arSyncState[(int)INDEX_SYNCSTATE.CLOSING], m_arSyncState[(int)INDEX_SYNCSTATE.SHOW] });
                Console.WriteLine(@"FormMainBase::ThreadProcShow () - indx=" + indx.ToString() + @" - ...");

                switch (indx)
                {
                case INDEX_SYNCSTATE.CLOSING:     // завершение потоковой функции
                    break;

                case INDEX_SYNCSTATE.SHOW:     // отобразить окно
                    show();
                    break;

                default:
                    break;
                }
            }
        }