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

Thread + Projeto


Guest familiadomal

Pergunta

Guest familiadomal

Tpo, eu to fazenu um projeto MultiThread

for i:= 0 to 100 do Thread.Start;

So que isso laga, trava, a form1, clica pra fexar, não fexa, etc..

commo eu posso fazer pro thread executar mas o Form1 Trabalhar normalmente?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

A classe Tthread é um classe que possibilita a criação de vários threads em uma única aplicação.

Cada nova instância da classe TThread é um novo thread da aplicação. Para voce implementar uma aplicação multthread basta derivar uma nova classe TThread e sobrescrever ( override) os seus metodos.

Para criar uma nova classe filha de TThread, proceda da seguinte maneira

1 - Escolha a opção File / New / Thread Object para criar a nova unit que contenha a definição desta nova classe

2 - Escolha o nome da nova classe

3 - Redefina o construtor Creat da nova classe

4 - Defina o método Execute, inserindo o codigo que será executado pelo thread

OBS: Não se esqueça de sempre passar qualquer chamada a um método de controle da VCL ao método Syncronize, para evitar conflitos de vários threads entre si

O delphi vem com um exemplo de uma aplicação multithreads ( thrddemo.dpr ) , que está localizado no diretorio

C:\Arquivos de programas\Borland\Delphi5\Demos\Threads // ou delphi7

caso não tenha conhecimento sobre este assunto, olhe este post

http://scriptbrasil.com.br/forum/index.php...st&p=457455

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --familiadomal --

cara.. não consigo.. :/

Ele tpo trava a FORM..

To fazendo assim:

while threadsNo >= 10 do begin

Application.ProcessMessages

end;

Pra não passa de 10 thread.. conforme termina uma ele da dec(threadsNo);

Link para o comentário
Compartilhar em outros sites

  • 0
caso não tenha conhecimento sobre este assunto, olhe este post

http://scriptbrasil.com.br/forum/index.php...st&p=457455

Jhonas, confira este link porque ele não aponta para o suposto tópico.

cara.. não consigo.. :/

Ele tpo trava a FORM..

To fazendo assim:

while threadsNo >= 10 do begin
      Application.ProcessMessages
end;

Pra não passa de 10 thread.. conforme termina uma ele da dec(threadsNo);

Acho que seria mais conveniente você colocar o código que implementou para as Threads e, do seu form, todos o resto que dizer respeito a elas. Do contrário, vai ser difícil alguém lhe ajudar.

for i:= 0 to 100 do Thread.Start;
e só para comentar, isto não multi-thread, mas sim uma única thread sendo inciada (Start) 101 vezes.

Lembre-se do que o Jhonas citou sobre instâncias.

Abraços

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,2k
    • Posts
      651,9k
×
×
  • Criar Novo...