Пример #1
0
        private void ChamarMetodoQuandoAcabar(Contador contador)
        {
            Action atualizeATelaSemErroDeThread = () =>
            {
                log.Text += string.Concat("Um delegate me chamou");
                cronometro.Stop();
                log.Text += string.Concat("Acabei de contar: ", DateTime.Now, Environment.NewLine);
                log.Text += string.Concat("Levei: ", cronometro.Elapsed.TotalSeconds, " segundos");
                Application.DoEvents();
            };

            Invoke(atualizeATelaSemErroDeThread);
        }
Пример #2
0
        private void ChamarContador()
        {
            cronometro.Start();

            Action atualizeATelaSemErroDeThread = () =>
            {
                log.Clear();
                log.Text = string.Concat("Início: ", DateTime.Now, Environment.NewLine);
                Application.DoEvents();
            };

            Invoke(atualizeATelaSemErroDeThread);

            var contador = new Contador();

            //passar um método que será executado assim que um método da classe "Contador" invocar
            contador.Invocar_Delegate_Contador = new Delegate_Contador(ChamarMetodoQuandoAcabar);

            //iniciar a rotina na classe "Contador"
            contador.StarCount(Convert.ToInt32(numContador.Value));
        }