public void run() {
        enEjecucion = true;
        duracionAnt = duracion;

        inicio = new Date();
        if( handler != null )
            handler.timerArrancado( this );

        while( enEjecucion )
            {
            try {
                esperar( intervalo );
            } catch( InterruptedException e ) {
                return;
                }

            if( handler != null )
                handler.timerIntervalo( this );

            if( duracion > 0 )
                {
                if( estaMuerto() )
                    {
                    if( handler != null )
                        handler.timerMuerto( this );

                    if( repeticion )
                        {
                        enEjecucion = true;
                        inicio = new Date();
                        if( handler != null )
                            handler.timerArrancado( this );
                        }
                    else
                        {
                        enEjecucion = false;
                        }
                    }
                }
            }
        }