Ir para conteúdo
Fórum Script Brasil
  • 0

Problema com meu script


Kali

Pergunta

Olha eu novamente, rss :) .

Então, desenvolvi o seguinte script em Delphi porém não está funcionando á intenção dele é : Verificar se á minha Thread está suspença ou foi finalizada, utilizando á API CreateThread.

Code:

******* Criação de um procedimento com meu nome

Procedure MyName(Nome : String);
begin
  Nome := 'David';
end;


******* Criação da minha Thread

var 
  hThread : THandle;
  hThdID  : Cardinal;
hThread := CreateThread(nil, 0, @MyName, nil, 0, hThdID);

******* Verificação das Threads

if SuspendThread(hThread) > 0 then
ShowMessage('Minha Thread foi suspença');
if TerminateThread(hThread, 0) then
ShowMessage('Minha Thread foi finalizada.');

** FIM.

Então este meu script não funciona, fiz com base em um artigo,onde sera que estou errando? rss tranks.

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

vce deve ler o artigo com calma ou não vai entender como fazer...

exemplo

Defina uma classe que descenda de TThread:

type TPingThread = Class(TThread)
      procedure   Execute; override;
      constructor Create;
end;

Defina uma variável p/ a Thread:

var PT:TPingThread;

No onCreate do Form você instancia:

PT := TPingThread.Create;

Depois implemente os dois métodos:

constructor TPingThread.Create;
begin
 inherited Create(true); // cria suspensa
 FreeOnTerminate := false; // deixa vc liberar o objeto
end;

procedure TPingThread.Execute;
begin
 While not Terminated do
 begin
// Aqui vc coloca o código do evento timer
// Não deixe sair deste While, executando Suspend após sua tabela chegar ao fim
end;
end;

No onTimer você ativa:

PT.Resume;

No onDestroy você libera:

PT.Free;

Antes de dar o Resume, teste se ela está suspensa:

if PT.Suspended then
 PT.Resume;

OK.... Se ainda não entendeu, leia o artigo desse link ( com calma ... rs )

http://www.forum-invaders.com.br/vb/showthread.php/13989-Tutorial-Delphi-Threads

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Muito obrigado novamente jhonas , rs.

O problema é que, á classe TThread entrou para deprecated, estou tentando utilizar á API do Windows (CreateThread) .

Eu consigo fazer o seguinte.

Crio á minha Thread.

Consigo suspende-lá.

Consigo resumi-lá.

com as funções (SuspendThread, ResumeThread) porém meu problema está sendo na checagem, rss .

Você poderia me explicar como faço está checagem atráves da API CreateThread ? eu procuro na internet so acho para á classe TThread. .

Link para o comentário
Compartilhar em outros sites

  • 0

Sem sucesso também jhonas, preciso resolver somente um problema no meu script que é este:

if SuspendThread(hThread) > 0 then
ShowMessage('Minha Thread foi suspença');
if TerminateThread(hThread, 0) then
ShowMessage('Minha Thread foi finalizada.');

O meu sistema de checagens das threads, eu verifiquei o mesmo suspende á minha thread é depois exibe o resultado (Thread foi suspença) Queria apenas impedir que terçeiros pausa-sem ás. Sabe como posso fazer isto ?

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...