Si se produce un evento, será la porción del código adjunto a ese evento se ejecutará de inmediato?
Bueno, sí y no. Los eventos son delegados de multidifusión, por lo que puede haber cero, una o muchas "partes de código" asociadas a un evento. En el escenario donde hay muchos, claramente uno de ellos tiene que ir primero y uno de ellos tiene que ir en segundo lugar. El que va en segundo lugar no se ejecuta inmediatamente después del evento que se plantea; se ejecuta inmediatamente después de que el primer controlador de eventos complete normalmente.
¿El evento se pondrá en una pila de eventos y se ejecutará cada vez que .NET lo considere adecuado para la ejecución mientras se ejecuta otro código mientras tanto?
Supongamos que su aplicación está mal escrita y cuelga la IU. Mientras la IU está colgada, el usuario hace clic en el botón 1 y el botón 2. Como la aplicación está bloqueada, no ocurre nada visible. Los eventos para los botones 1 y 2 en los que se hace clic no se disparan. Pero Windows ha creado una cola de mensajes y ha puesto en cola el hecho de que el botón 1 y el botón 2 tienen clics pendientes que deben procesarse cuando la aplicación se separa. Cuando se bombea el bucle de mensaje, el evento de clic del botón 1 se dispara. Cuando se hace lo suyo, el ciclo de mensajes se bombea de nuevo y el evento de clic del botón 2 se dispara.
Así que sí, en ese sentido los eventos se ponen en cola y se ejecutan más tarde, pero no es "cuando .NET lo considera adecuado"; es cuando el hilo que está procesando la cola de mensajes comienza a procesar la cola de mensajes nuevamente. No hay una misteriosa política de Windows aquí que controle tu código.
"Cuando se hace lo suyo, el ciclo de mensajes se bombea nuevamente y el botón 1 clic dispara el evento". ¿Te refieres al botón 2 clic en evento? " – Brian