Evaldo escreveu:
> Eu estou iniciando em programação paralela,  e me deparei com o seguinte 
> problema: quando o sistema inicia, ele cria  threads que vao executar tarefas 
> demoradas. Se o programa for fechado antes das threads terminarem, ocorrer 
> erro de acsses violation. Como eu posso interromper a execução dessas threads?
>
> eu crio-as da seguinte forma: 
> var
>     hThreadID : THandle;
> begin
>     hThreadID := CreateThread (nil, 0, @Funcao, nil, 0, ThreadID); 
    Evaldo, nunca trabalhei com THandle, pelo menos não me lembro. Faça 
o seguinte, experimente colocar um codigo dentro do evento OnCloseQuery 
assim:

procedure TSeuTFormPrincipal.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
   Try
     FreeAndNil(hThreadID);
     CanClose := True;
   Except
     CanClose := False;
     {Coloque codigos para informar que nao foi possivel fechar}
   End;
end;

   Tenta aí..

[]Os Joel

   



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 

Responder a