Cómo implementar subprocesos múltiples en Delphi
El subproceso múltiple es en realidad muy simple. DELPHI tiene clases de subprocesos múltiples que puede agregar y usar. Pero a mí me gusta llamar a la API. El método es el siguiente:
Defina una función o proceso. Esta función es lo que el hilo quiere ejecutar. Luego, puede crear hilos continuamente llamando a la API. Cada hilo ejecuta esa función de forma independiente. Después de la ejecución, el hilo se cerrará automáticamente. en mi programa:
{El siguiente es el proceso del hilo. Mi hilo pasa un parámetro y crea el SOCKET}
procedimiento ClientThread(var sock:TSOCKET;
var…;
begin
……
end;
{El siguiente es el código del programa principal para establecer el servicio, esperar la conexión y llamar al hilo para procesarlo después de la conexión}
repetir
iAddrSize := sizeof(client);
sClient := aceptar(sListen, @client, @iAddrSize);
si sClient=INVALID_SOCKET entonces
comenzar
SocketErrorMsg(sClient, 'accept() falla ');
break;
end ;
writeln('Cliente aceptado: ',inet_ntoa(client.sin_addr),':',ntohs(cliente .sin_port),' sock=',sClient);
hThread := CreateThread(nil, $1000, @ClientThread, @sClient, 0, dwThreadId);
si hThread=0 entonces
comenzar
writeln('CreateThread () falla:',GetLastError);
romper;
finalizar;
CloseHandle(hThread);
hasta que sea falso;