Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-05-2014
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por rcuevas Ver Mensaje
Pero sigo sin tener claro cuándo los genera, porque, según lo que veo en mi aplicación, mientras el proceso está dormido mediante un sleep, el sistema operativo sólo genera un evento, cuando le hubiese dado tiempo a generar 5!! Si los eventos los ha de generar el sistema operativo cada segundo, y nuestro programa ha pasado 5 segundos dormidos, es lógico que durante esos 5 segundos no haya tratado ningún evento, pero no es lógico que el sistema operativo, que no ha estado durmiendo, no haya generado 5 eventos...
mamcx te ha querido decir que el sleep duerme el hilo, es decir, el bucle de mensajes, por lo que el S.O. no puede generar el evento, ya que el hilo simplemente no procesa el mensaje. Si quieres evitar ese efecto, debes tener otro hilo, con su bucle de mensajes, que responda...


Saludos.
Responder Con Cita
  #2  
Antiguo 27-05-2014
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.917
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por escafandra Ver Mensaje
mamcx te ha querido decir que el sleep duerme el hilo.
Que es exactamente lo que pasa, recuerda, es un INTERRUP y eso aplica a todo el thread. Por eso, el OS no puede enviar nada al thread, esta pausado! asi que mientras esta pausado, este "ignora" al thread.

Lo cual esta explicado en los links, por ejemplo:

Cita:
any code that resides inside a timer event handler (for this type of timer class) is executed using the application's UI thread. During idle time, the UI thread is also responsible for processing all messages in the application's Windows message queue. This includes Windows API messages as well as the Tick events raised by this timer class. The UI thread processes these messages whenever your application isn't busy doing something else.
Asi que no le des vueltas. Todo esta sucediendo tal como se ha explicado y no hay ningun comportamiento "anomalo" ni inesperado. Recuerda que al usar el API del OS, estas cooperando y siguiendo con su forma de hacer las cosas, y una app GUI igual esta construida sobre el mismo, asi que no es extraño que trabajen al unisono si se reutilizan aspectos de la misma API subyacente.
__________________
El malabarista.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
como guardar en postgresql (como trabaja el datamodule) mematanlimon Lazarus, FreePascal, Kylix, etc. 0 15-02-2010 19:06:12
Como se trabaja con ejecutables? alloger C++ Builder 2 13-10-2006 12:42:54
Como se trabaja la Clausula Like en delphi Shidalis OOP 4 26-08-2005 16:18:51
Codigo de la tecla F3 Como cuando se trabaja un enter en vez de un TAB jmedina Varios 4 08-07-2004 16:05:21
Como trabaja RecordCount de las Tablas Paradox??? JamesBond_Mx Conexión con bases de datos 12 06-04-2004 16:42:48


La franja horaria es GMT +2. Ahora son las 21:44:48.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi