- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
if not MultiThread then
begin
GetName(@rec);
result:=rec.fname;
end
else
begin
hThread:=CreateThread(0,0,@GetName,@rec,0,tmp);
if WaitForSingleObject(hThread,100)=WAIT_TIMEOUT then
TerminateThread(hThread,0)
else
result:=rec.fname;
CloseHandle(hThread);
end;
Плохой способ, кстати. После TerminateThread() ресурсы, захваченные потоком не освобождаются. Какую-нибудь лочку в менеджере памяти заклинит - и приехали. Пиздец всей проге.