2011-10-24 8 views
7

Normalmente, las aplicaciones de formularios de Windows proceden a la ejecución a medida que el usuario proporciona la (s) entrada (s).
ex: Haga clic en un botón.
Hasta entonces, ¿la aplicación está ocupada esperando?
(vaya y compruebe si se ha "hecho clic" en "un botón". Quiero decir, compruebe si se ha producido algún evento)
o cuando ocurre un evento ¿el sistema operativo interrumpe las aplicaciones?
¿Cuál es el mecanismo exacto de manejo de eventos para las aplicaciones de formularios de Windows?¿Las aplicaciones de Windows Forms están ocupadas esperando entradas del usuario?

+0

buen (s) enlace (es) (que Google no proporciona) sería genial :) – Dinushan

+2

Puede suponer que ninguna aplicación escrita correctamente utiliza la espera ocupada. – ThiefMaster

Respuesta

2

No tengo mucho conocimiento al respecto para compartir. Pero seguramente compartiré mis cacahuetes.

El programa no espera a nadie. Es como en modo de suspensión. ¿Consume recursos pero solo para mantener su GUI en pantalla?

El manejo de eventos no está basado en el programa ni en el sistema operativo. Su hardware basado. Al hacer clic con el mouse o presionar una tecla en el teclado, se considera que es actividad externa asíncrona. El hardware insinúa el SO sobre la acción tomada por el usuario o un dispositivo externo y la información se pasa al Programa correspondiente. El programa puede aceptar la clave o rechazarla. Si acepta, la clave se pasa a los controladores de eventos y se genera la acción requerida. OS no está involucrado en absoluto en el proceso. Es más o menos como un mediador que convierte el Código nativo en Código legible para el programa. Y esa es una de las razones por las que los programas son específicos del sistema operativo. Quiero decir, ¿qué ocurre si el sistema operativo convierte el código nativo en un formato que el programa no puede leer?

Estás hablando de un evento en la aplicación basada en Windows, imaginemos el caso del USB. Actualmente hay 8 o más de 8 ranuras USB en las motherboards. Un usuario puede enchufar el USB en cualquier ranura. ¿El sistema operativo sigue esperando que se inserte un USB y en cada ranura sigue rastreando y esperando? NO. De ningún modo. Es un proceso basado en hardware y es el deber del hardware intimar con el sistema operativo al respecto. Las comunidades compatibles con Windows y compatibles con Linux aparecen aquí para analizar qué hardware es compatible con el sistema operativo.

See this to know more.

3

No, no están ocupados esperando: ejecutan un Windows Message Pump que es un bucle que bloquea hasta que Windows tenga un mensaje para darle.

Esto es básicamente lo que Application.Run hace.

Cuestiones relacionadas