hyperthreading vs multithreading



Hello,

I'm porting my app to multithreading (for the multi-core processor).
For the moment I detect the number of core like this :

function NumberOfCPUs: integer;
var
si: TSystemInfo;
begin
GetSystemInfo(si);

result := si.dwNumberOfProcessors;
end;

but For Proc with hyperthreading it will detect only one Proc, so I don't use multithreading.

Would it be interesting to use Multithreading with mono core processor that do have Hyperthreading also ?
I don't know it hyperthreading is just a marketting term or is there's really a gain.

Thanks for your help.

John
.