Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

[Dúvida] TimerCallback timerDelegate

Quando eu efetuo a requisição de um timerDelegate, eu estou apenas efetuando uma chamada de um método de tempos em tempos (neste caso de 1 e 1 minuto) ou o TimerDelegate também faz alguma outra coisa?

                TimerCallback timerDelegate = SendKeepAlive;
                mpKeepAliveTimer = new Timer(timerDelegate,this, 60000,60000);
                
                
                private void SendKeepAlive(Object state)
    {
        try
        {
                mpPortal.WSAgent.keepAlive( CurrentAgent.AgentArg);
        }
        catch(Exception pError)
        {
            Console.WriteLine(pError.StackTrace);
        }
    }
3 respostas
solução!

Olá, Willian

Quando você efetua a requisição de um timerDelegate, você está criando um objeto Timer que irá chamar o método SendKeepAlive de tempos em tempos, no intervalo definido (1 minuto no seu caso).

O TimerDelegate em si não faz mais nada além de chamar o método especificado no intervalo definido. No seu exemplo, o método SendKeepAlive é chamado a cada 1 minuto para enviar um sinal de "keep alive" para o servidor.

Dentro do método SendKeepAlive, você está chamando a função keepAlive do objeto mpPortal.WSAgent para manter a conexão ativa. Caso ocorra algum erro durante essa chamada, o catch irá imprimir o stack trace do erro no console.

Espero ter ajudado e bons estudos!

Perfeita a explicação.

Funciona parecido com o objeto timer do Windows form.

MUITO OBRIGADO pelo explicação.

Por nada Willian, bons estudos