/// <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; } } }
/// <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; } } }