//para el thread
        private void ProbarTodo()
        {
            EventDelegatePrice formLoad = new EventDelegatePrice(FrmSP_Load);
            EventDelegatePrice button1  = new EventDelegatePrice(btnPunto1_Click);
            EventDelegatePrice button2  = new EventDelegatePrice(btnPunto2_Click);

            formLoad.Invoke(formLoad, EventArgs.Empty);
            button1.Invoke(button1, EventArgs.Empty);
            button2.Invoke(button2, EventArgs.Empty);
        }
 //Si el precio total de la caja supera los 120 pesos, se disparará el evento EventoPrecio.
 //Diseñarlo (de acuerdo a las convenciones vistas) en la clase caja.
 //Adaptar la sobrecarga del operador +, para que lance el evento, según lo solicitado.
 //Crear el manejador necesario para que, una vez capturado el evento, se imprima en un archivo de texto:
 //la fecha (con hora, minutos y segundos) y el total de la caja (en un nuevo renglón).
 //Se deben acumular los mensajes.
 //El archivo se guardará con el nombre 'facturas.log' en la carpeta 'Mis documentos' del cliente.
 //El manejador de eventos (c_fosforos_EventoPrecio) invocará al método (de clase)
 //ImprimirFactura (se alojará en la clase Facturadora), que retorna un booleano
 //indicando si se pudo escribir o no.
 private void btnPunto4_Click(object sender, EventArgs e)
 {
     try {
         //Asociar manejador de eventos (c_fosforos_EventoPrecio) aquí
         EventDelegatePrice myDelegate = new EventDelegatePrice(c_fosforos_EventoPrecio);
         this.c_fosforos.EventoPrecio += myDelegate;
         this.c_fosforos += new Fosforo("Madera", "Fragata", 60);
     } catch (Exception ex) {
         //Agregar, para la clase CajaLlenaException, un método de extensión (InformarNovedad():string)
         //que retorne el mensaje de error
         MessageBox.Show(ex.Message);
     }
 }