FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problema con librería DLL y TThread
Tengo el siguiente problema, que no sé cómo solucionar, he probado de todo... TBackgroundWorker, TThread, JVThread... y nada de nada...
Esto es un resumen de mi librería dll type TNuevo = class(TObject) sNuevo: TIdHTTP; private public procedure Funcion(var1, var2, var3: string); constructor Create; destructor Destroy; override; end; constructor TNuevo.Create; begin inherited; sNuevo := TIdHTTP.Create(nil); sNuevo.HandleRedirects := True; end; destructor TNuevo.Destroy; begin sNuevo.Free; inherited; end; var finalizado : Boolean; procedure TNuevo.Funcion(var1, var2, var3: string); begin .......... .......... sNuevo.Get(var1); .......... .......... finalizado := True; end; En un momento de la rutina principal, quiero crear un hilo nuevo que ejecute el procedimiento "Funcion". Entonces me he creado un objeto TThread, así: Type TBack = class(TThread) private protected procedure Execute; override; public Constructor Create(CreateSuspended : boolean); end; constructor TBack.Create(CreateSuspended : boolean); begin inherited Create(CreateSuspended); end; var sBack : TBack; procedure TBack.Execute; begin try gNuevo.Funcion('texto1', 'texto2', 'texto3': string); except finalizando := True; end; end; Entonces, en la rutina principal pongo: gNuevo := TNuevo.Create; sBack := TBack.Create(False); sBack.FreeOnTerminate := False; finalizado := False; sBack.Resume; while finalizado = False do begin try Application.ProcessMessages; except end; end; gNuevo.Destroy; sBack.Destroy; Pero no hay forma de que funcione de forma correcta... |
#2
|
||||
|
||||
Recuerda poner los tags al código fuente, ejemplo:
Gracias |
#3
|
|||
|
|||
Tengo el siguiente problema, que no sé cómo solucionar, he probado de todo... TBackgroundWorker, TThread, JVThread... y nada de nada...
Esto es un resumen de mi librería dll
En un momento de la rutina principal, quiero crear un hilo nuevo que ejecute el procedimiento "Funcion". Entonces me he creado un objeto TThread, así:
Entonces, en la rutina principal pongo:
Pero no hay forma de que funcione de forma correcta... Sin el Thread funciona a la perfección, pero se queda congelado hasta que acaba, con el Thread, "Funcion" se raya, según le da... y me salen excepciones... |
#4
|
||||
|
||||
frangarrob,
Te comento: Cita:
El código anterior resuelve todo lo comentado (Puntos 1 al 5), pero desconozco si es lo que requiere tu proyecto. Espero sea útil Nelson. Última edición por nlsgarcia fecha: 07-12-2012 a las 20:28:34. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problema creando una libreria. | Suriu | OOP | 4 | 03-11-2010 22:49:47 |
Problema con libreria MSVCRT.dll | El_Perrito | Firebird e Interbase | 2 | 19-08-2006 19:55:36 |
problema con libreria | reevil | OOP | 4 | 17-05-2006 13:30:06 |
Tengo un problema con la libreria | ElDioni | Varios | 0 | 15-07-2005 13:27:04 |
Problema con librería en Visual C++ | llauraff | Varios | 0 | 16-09-2004 14:36:20 |
|