Alguém sabe diferenciar o PID do HANDLE ???

Delphi

22/10/2008

Bom estou querendo fazer uma aplicação que escolha dinamicamente o processador no qual a thread deve rodar. Nucleo 1 ou nucleo 2 por ex.
O comando:
-> SetthreadAffinityMask(Handle,value) ´PARECE não Funcionar´

Existe um outro que muda afinidade de processos ´ESSE FUNCIOANA´
-> SetProcessAffinityMask(vHandle, value)

Para tentar driblar eu gostaria de usar a segunda função pois esta funcioana mesmo.

EU preciso saber como pego o PID da THREAD que está rodando ??
Pois uma thread não deixa de ser um processo, certo ?!

Obrigado a todos !!! :?


Juniorvieira

Juniorvieira

Curtidas 0

Respostas

Marcosrocha

Marcosrocha

22/10/2008

GetCurrentProcessId


GOSTEI 0
Juniorvieira

Juniorvieira

22/10/2008

GetCurrentProcessId


Obrigado , mas não era isso.

:arrow: Gostaria de saber a diferença entre PID e HANDLE .

Essa função traz o PID do processo da aplicação (O executavel em si.)

->A thread é a função GetCurrentThreadId .


GOSTEI 0
Marcosrocha

Marcosrocha

22/10/2008

[b:b3bea447fd]Handle[/b:b3bea447fd]: Referencia para o Bloco da Memória que um processo se encontra.
[b:b3bea447fd]PId[/b:b3bea447fd]: Referencia o número do processo junto à lista de tarefas do Windows.

Pegando o ID de uma Thread (TThread).
ShowMessage(IntToStr( MyThread.ThreadID ));

Segundo o Help do Delphi...
[quote:b3bea447fd=´Delphi Help´]ThreadID property identifies the thread throughout the system. ... On Windows, ThreadID is also useful when calling Win32 API functions for manipulating the thread.

A propriedade ThreadID identifica uma thread no sistema. ... No Windows, ThreadID também pode ser útil quando estiver manipulando a Thread fazendo chamadas com as funções da API Win32.[/quote:b3bea447fd]


GOSTEI 0
Juniorvieira

Juniorvieira

22/10/2008

ok. valeu pela ajuda.. Se alguém conseguir usar threads em nucleos diferentes mandem como faz por favor. blz ??? abraçossss


GOSTEI 0
Juniorvieira

Juniorvieira

22/10/2008

ok. valeu pela ajuda.. Se alguém conseguir usar threads em nucleos diferentes mandem como faz por favor. blz ??? abraçossss


GOSTEI 0
Benedito Ordine

Benedito Ordine

22/10/2008

Se você estiver utilizando o sistema operacional do window 8 , siga os seguintes passos.
1- CTR + ALT + DEL
2 - Clique em Gerenciar Tarefas
3- Na tela que aparecer clique em Detalhes
4- Procure sua aplicação e clique com o botão direito do mouse em sua aplicação
5 - Clique em cadeia de espera e aparecerá as informações de PID e Threads
Se estiver rodando a sua aplicação normalmente esta informação não aparecerá. Só se estiver aguardando para rodar.

É o meu problema hoje , por isso sei destes passos .

Atenciosamente Bene,[img]http://arquivo.devmedia.com.br/forum/imagem/469247-20160101-111856.png[/img]
GOSTEI 0
POSTAR