Los eventos se cargan y ejecutan en el hilo principal, y si el primer evento en el hilo principal no se termina, llegas al segundo evento, igual que otros programas del hilo principal, esperas a que el anterior termine de procesarse antes de procesar el siguiente u otro programa u evento en el hilo principal.
Lo anterior es que yo mismo encapsulé un objeto, y en el objeto, encapsulé un evento yo mismo.
Proceso datos mediante el método de suscripción a eventos, como la parte de la anotación de imágenes,
Porque el evento al que me suscribí era un archivo txt de lectura, y mi archivo txt tenía 50.000 líneas, lo que provocó que el método del evento se activara 50.000 veces.
Luego, cuando ejecuté el programa, vi que mi interfaz estaba en estado de animación suspendida, y supe que debía de haber un problema ahí.
Al principio pensé que era la manipulación de los controles de la interfaz en el método lo que causaba una muerte falsa.
Luego, paso a paso, se descubrió que al añadir datos al conjunto, ya había entrado en un estado de animación suspendida.
¿¿¿por qué??? Finalmente, descubrí por internet que el evento está en el hilo principal y que si el primer evento no se procesa, bloqueará la ejecución del siguiente,
En general entendía lo que ordenaba, para ser franco, 50.000 eventos bloqueaban el programa, y entonces entraba en un estado de animación suspendida.
Solución:
Para algunos eventos simples, que no conducirán a la ejecución de un gran número de métodos de eventos, pueden escribirse directamente en el método de eventos.
Para un gran número de métodos de eventos llamados, espero que abras un hilo para gestionarlo, como: socket o httplistener, etc. (la cantidad de datos es pequeña y no puedes verla, una vez que la cantidad de datos es grande, jaja, morirá directamente)
|