Página 1 de 1

component Timer não ativa

MensagemEnviado: 28 Out 2011 07:09
por marcelo campos
Amigos

Estou iniciando no C# e me deparai com um problema que não consigo achar de onde vem:
- Tenho uma função que quando gera um erro é tratado por um "catch", tentro deste catch tenho que ativar um timer, como abaixo:
Código: Selecionar todos
tmrReconecSocket.Enabled = true;
tmrReconecSocket.Start();


O que acontece, é que até executa esta linha mas o timer simplesmente "teima em ignorar" que foi startado

Quando executo o mesmo de outro lugar, como por exemplo click de um botão aí sim vai ok.

Será que não posso fazer chamada de dentro de um catch ? fiquei meio confuso pois outros chamadas faço e funcionam ok

Já experimentei, criar direto sem o componente Timer como em
Código: Selecionar todos
Timer tmrReconecSocket = new Timer();


mas continua exatamente igual

Agradeço a ajuda

Marcelo

MensagemEnviado: 28 Out 2011 10:19
por tcpipchip
Código: Selecionar todos
// Manager class
private System.Timers.Timer _timer;

    private exception = null;

    void _timer_Elapsed(object sender, ElapsedEventArgs e)
    {
        try
        {
            doSomeDatabaseActions();
        }
        catch (Exception ex)
        {
            this.exception = ex;
        }
    }

    public bool hasExceptionOccured(){
        if(this.exception == null){
            return false;
        }
        return true;
    }

    //The main application will call this to get the exception.
    public Exception getException(){
        return this.exception;
    }


Registre a exceção em um objeto e monitore fora se ocorreu...ocorrendo, habilite nela o seu timer.

A proposito, tenho placas .NET para ARM :)

MensagemEnviado: 28 Out 2011 11:13
por marcelo campos
Olá tcpipchip,

Então, na verdade já estou fazendo algo parecido: criei uma Flag booleana global, que um timer geral da aplicação monitora, aí quando gera o erro específico ele "seta" esta flag

Porém não achei muito elegante isto e, no VB, era bem mais fácil: bastava fazer o que queria na sub de tratamento do On Error;

Placa .NET : me passa umas info dela e claro o valor$$, é já montada ?
tava vendo umas da http://www.ghielectronics.com/ mas, desisti de comprar devido à uma outra que foi lançada, depois te falo melhor ; )

valeu, abraço,

Marcelo
:wink:

MensagemEnviado: 28 Out 2011 12:01
por tcpipchip
Um amigo meu comentou teu caso

"Deveria funcionar, pois o catch nada mais é do q um bloco de código executado quando ocorre uma exceção...

Pelo q entendi, ele disse q parece q o timer não foi iniciado... talvez o timer foi iniciado mas logo em seguida tenha sido finalizado por estar em um processso/metodo q foi finalizado.
Peça pra ele por um sleep logo depois de fazer o start... dai ele vai saber se é este o problema."

MensagemEnviado: 28 Out 2011 13:24
por marcelo campos
Ok vou tentar

valeu