Manipulação de Threads

Delphi

18/05/2004

Olá Pessoal...

Já pesquisei bastante pela net, mas naun encontrei nada que pudesse me ajudar. O que eu preciso é o seguinte....
Preciso manipular com o TThreadList. na minha aplicação vou ter dois destes, um para maior prioridade e um para menor prioridade. Quando eu criar uma Thread já vou saber em qual das listas devo adicionar ela, dai eu preciso parar o processamento dela, colocar ela na TThreadList correspondente e fazer uma busca na Lista de prioridade maior e pegar a primeira thread da lista para executar, quando naun tiverem mais threds nessa lista, pego as threds em ordem da outra lista e as executo.
Alguem teria dicas de como fazer isso utilizando TThreadList???

Desde já agradeçoa a atençãod e todos

Abraços
Samuel


Sgubert

Sgubert

Curtidas 0

Respostas

Nildo

Nildo

18/05/2004

Só por curiosidade, o que você vai fazer dentro destas Threads? Observe bem, utilizando TThreadList elas serão automaticamente ´Thread Safe´, o que significa que o uso de VCL nestas threads irá resultar em Reboots, telas azuis da morte, e muitos erros. Você não deve usar de jeito nenhum VCL dentro de uma ThreadSafe, então tome cuidado com isso.


GOSTEI 0
Sgubert

Sgubert

18/05/2004

Na verdade eu vou ter 10 threads que irão simular diversos valores. Essa treads irão executar uma procedure no programa principal que irá criar uma nova thred, é esta que acaba de ser criada que vou colocar na lista. Ela apenas vai acessar uma matriz na Unid principal protegida com um TCriticalSection. è so isso que as threads vão fazer....

[]´s
Samuel


GOSTEI 0
Sgubert

Sgubert

18/05/2004

Ola de novo....

Eu poderia tb trabalhar com dois arrays dinamicos para cada prioridade que tenho, mas nunca trabalhei com isso.
Precisaria saber como inserir uma thread nele, como pegar a thred, remover e esse tipo de oisa....de repente se puderem me ajudar....

[]´s
Samuel


GOSTEI 0
Nildo

Nildo

18/05/2004

Neste caso eu não aconselho a usar Thread Safe como é o caso do TThreadList.

Provavelmente voce criou um componente que herda de um TThread certo? Crie uma array desse componente. Ficaria assim:

Matriz: array [0..N] of TSuaThread


Assim você pode mecher nas propriedades delas normalmente


GOSTEI 0
Sgubert

Sgubert

18/05/2004

Legal, vou tentar...

Valeu mesmo nildo!

Abraço
Samuel


GOSTEI 0
Ltres

Ltres

18/05/2004

Cara da uma olhada, se vc ja naum viu, no exmplo do Guinther Pauli: Thread Manager
[url]http://codecentral.borland.com/codecentral/ccweb.exe/listing?id=17644[/url]


GOSTEI 0
POSTAR