![]() |
Datos personalizados en los Context de la Indy
Hola amigos de clubdelphi. Quiciera comentarles que me encuentro desarrollando un juego en flash y dado que es multiplayer he tenido que tomar a delphi + indy como las opciones para crear un servidor para la aplicacion.
Todo funciona bien. Pero el problema es que por cada conexion que se crea, tengo que tener una cantidad de datos que me hacen falta y todo ello lo guardo en un puntero a un objeto que me dan los context de la Indy. O sea asi de esta manera. Esto me funciona bien, pero cuando conecto otro cliente me comienza a dar errores y se me conjela la app pincipal que tengo que tumbarla de los procesos. Alguien sabe como puedo hacer eso que quiero de la forma correcta ?. Aqui pongo toda la unit para que se entienda mas !!!
|
Hola fide_uci,
Creo que uno de los problemas puede estar aquí:
Ten en cuenta que el evento onExecute se dispara cada vez que un hilo tiene actividad, y es un sistema multi-hilos, es decir, más de un hilo puede estar disparándolo al mismo tiempo. Dentro de este tipo de métodos, no puedes hacer referencias a componentes VCL directamente, sino, que tienes que hacerlo a través de métodos compartidos y llamarlos con "Synchronize", para que cuando se acceda a la VCL, se haga de modo "ordenado". Precisamente, cuando hay conflicto de acceso a VCL en este tipo de métodos la aplicación se congela. Espero que te ayude. Un saludo. |
Hmm ya voy entiendiendo. Pero bueno mi error no era debido a lo de el acceso a la VCL sino a otra cosa. Es que estaba liberando un puntero y por eso me estaba dando errores. Muchas gracias por tu ayuda !
|
O sea mas concretamente el error estaba en que sin darme cuenta estaba Bloqueando 2 veces la lista en la misma linea y por eso me explotaba.
Cuando en realidad la forma correcta seria meter el LockList es una variable de tipo TList para poder acceder a ella mas o menos de esta forma.
|
La franja horaria es GMT +2. Ahora son las 10:14:16. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi