FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
TIdTCPClient - WirteStream simultáneo?
Hola
Quería hacer una pregunta -quizá obvia- sobre TIdTCPClient.WirteStream. Tengo lo siguiente: Por una parte cada segundo escribo un comando constante, y por otra parte a petición de la aplicación escribo otros. Si se produce una escritura simultánea desde el evento OnTimer y desde el procedimiento el TIdTCPClient lo resolvería, o bien debo gestionarlo / impedirlo desde la aplicación. Uso Delphi 7 / Indy 9 Muchas gracias de antemano.
__________________
Sonríe. Mañana puede ser peor. Última edición por jplj fecha: 28-04-2010 a las 22:21:07. Razón: Indicar la versión de Delphi e Indy que utilizo |
#2
|
||||
|
||||
Depende:
-Si existe un solo componente para manejar todas las operaciones y solamente interviene un hilo de ejecución. -Si existe un solo componente para manejar todas las operaciones e intervienen varios hilos de ejecución. -Si existe un componente determinado y diferenciado para cada hilo de ejecución. En el primer y tercer caso no necesitarías manejar la concurrencia. En el segundo caso si deberías manejar la concurrencia. Si no te queda claro adelante, vuelve a preguntar.
__________________
"La recompensa de una buena acción está en haberla hecho" |
#3
|
|||
|
|||
Muchas gracias por la respuesta.
Los procesos de escritura se realizan con un solo componente y en el hilo principal (1º caso) , pero -simpre lo hay- tengo un hilo que usa el mismo componente para realizar lecturas (Cliente.ReadStream(...) ).
¿Podría haber problemas de concurrencia entre los procesos Cliente.WriteStream() del hilo principal y los procesos Cliente.ReadStream(...) del segundo hilo?
__________________
Sonríe. Mañana puede ser peor. |
#4
|
||||
|
||||
Cita:
WriteStream o ReadStream, son funciones que requieren bastante tiempo. Al estar ejecutándose en hilos diferentes puede que se ejecuten simultáneamente, lo que podría provocar una serie de errores (que se mezclasen los datos o vete tú a saber, desconozco el funcionamiento interno de estos componentes indy, tal vez usen un mismo buffer para ambas funciones). Lo correcto es que cuando termine una función, dé señal al otro hilo para utilizar la otra función y/o viceversa. Espero haberte ayudado. Un saludo.
__________________
"La recompensa de una buena acción está en haberla hecho" |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Pregunta Teórica - Acceso simultaneo a tablas de una DB | MaMu | Conexión con bases de datos | 4 | 04-12-2007 19:56:39 |
Acceso por miles de usuarios simultaneo | HomeCinema | Firebird e Interbase | 0 | 06-02-2007 11:38:23 |
acceso simultaneo varios usuarios Tabla interbase | hibero | Conexión con bases de datos | 15 | 04-12-2006 00:21:16 |
Acceso simultaneo a MySQl por internet | jjaen26 | Internet | 0 | 21-09-2006 22:07:17 |
IB problemas por acceso simultaneo al mismo campo | Giniromero | Conexión con bases de datos | 17 | 21-04-2004 11:17:20 |
|