Esempio n. 1
0
        //Запуск генерации в асинхронном режиме
        public void AsyncGenerate()
        {
            //Инициализация формы мониторинга процесса генерации
            m_ProceedingForm = new ProceedingForm();
            //Обработка нажатия на кнопку "Завершить..."
            m_ProceedingForm.StopButton.Click += new EventHandler((object obj, EventArgs Args) =>
            {
                m_Content.StopGeneration();
            });
            //Обработка закрытия формы
            m_ProceedingForm.FormClosed += new FormClosedEventHandler((object obj, FormClosedEventArgs Args) =>
            {
                m_ProceedingForm = null;
                m_Timer          = null;

                AfterGenerate();
            });
            //Инициализация и запуск таймера для периодического опроса m_Content о статусе процесса генерации
            m_Timer = new System.Threading.Timer(TimerHandler, null, 500, 500);

            //Открытие формы
            m_ProceedingForm.Show();

            //Запуск процесса генерации посредством асинхронного вызова делегата
            GenerateCallDelegate _invoke       = GenerateCall;
            IAsyncResult         _invokeResult = _invoke.BeginInvoke(AsyncGenerateCompleted, this);
        }
Esempio n. 2
0
 public CallGenerator(int timeInterval, GenerateCallDelegate generateCall) : base(timeInterval)
 {
     initElapsedEvent();
     vGenerateCallEvent += generateCall;
 }