Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-01-2016
Ramsay Ramsay is offline
Miembro
NULL
 
Registrado: ene 2016
Posts: 104
Poder: 9
Ramsay Va por buen camino
Error con multihilos

Hola , tengo un problema haciendo multireading , estoy tratando de crear cinco que muestren simplemente un mensaje , el problema es que siempre muestra el error "Exception class EAccessViolation with message 'Access violation at address" al usarlo

Código Delphi [-]
type
  TMyThread = class(TThread)
  protected
    procedure Execute; override;
  public
    text: string;
    property ReturnValue;
  end;

procedure TMyThread.Execute;
begin
  if Terminated then
    Exit;
  MessageDlgPos(text, mtInformation, [mbOk], 0, 100, 200);
end;

procedure TForm1.btnTestClick(Sender: TObject);
var
  LThread: TMyThread;
  i: Integer;
begin

  For i := 1 to 5 do
  begin
    LThread := TMyThread(Sender);
    try
      LThread.text := 'hi';
      LThread.FreeOnTerminate := True;
    except
      LThread.Free;
      raise;
    end;
    LThread.Resume;
  end;
end;

¿ Cual es el problema ?
Responder Con Cita
  #2  
Antiguo 31-01-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Nunca creaste el thread, estas realizando un cast forzado sobre Sender, que no es un TThread, es un TButton
Responder Con Cita
  #3  
Antiguo 01-02-2016
Mosis2k2 Mosis2k2 is offline
Miembro
 
Registrado: feb 2007
Posts: 12
Poder: 0
Mosis2k2 cantidad desconocida en este momento
Multihilos

Preuba con esto y nos comentas:

Código Delphi [-]
procedure TForm1.btnTestClick(Sender: TObject);
var
  LThread: TMyThread;
  i: Integer;
begin

  For i := 1 to 5 do
  begin
    LThread := TMyThread.Create;
    try
      LThread.text := 'hi';
      LThread.FreeOnTerminate := True;
    except
      LThread.Free;
      raise;
    end;
    LThread.Resume;
  end;
end;
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
Problema con multihilos y zeos JULIPO Conexión con bases de datos 0 14-04-2011 14:42:29
problema con multihilos vipernet Varios 2 23-09-2007 14:19:09
Multihilos noshy Varios 1 17-05-2006 03:19:14
Indy Servidor Multihilos dekae Internet 0 03-09-2005 01:26:01
multihilos taurux Varios 6 09-06-2003 17:57:24


La franja horaria es GMT +2. Ahora son las 08:05:20.


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