component Timer não ativa

Programação C em geral

Moderadores: 51, guest2003

component Timer não ativa

Mensagempor marcelo campos » 28 Out 2011 07:09

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
marcelo campos
Word
 
Mensagens: 648
Registrado em: 08 Ago 2009 08:37

Mensagempor tcpipchip » 28 Out 2011 10:19

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 :)
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Mensagempor marcelo campos » 28 Out 2011 11:13

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:
marcelo campos
Word
 
Mensagens: 648
Registrado em: 08 Ago 2009 08:37

Mensagempor tcpipchip » 28 Out 2011 12:01

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."
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Mensagempor marcelo campos » 28 Out 2011 13:24

Ok vou tentar

valeu
marcelo campos
Word
 
Mensagens: 648
Registrado em: 08 Ago 2009 08:37


Voltar para Visual C++/C/C++/C#

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x