Estoy tratando de implementar una rutina simple usando semáforos que me permitan ejecutar solo 3 instancias de la aplicación. Podría utilizar 3 mutex pero eso no es un buen enfoque he intentado esto hasta ahoraPermitir solo 3 instancias de una aplicación usando semáforos
var
hSem:THandle;
begin
hSem := CreateSemaphore(nil,3,3,'MySemp3');
if hSem = 0 then
begin
ShowMessage('Application can be run only 3 times at once');
Halt(1);
end;
¿Cómo puedo hacer esto correctamente?
Gran codificador, excelente respuesta. Gracias ! – opc0de
+1 Un poco decepcionante que 'SyncObjs.TSemaphore' no satisfaga las esperas temporizadas. O me perdí algo. –
D2007 ni siquiera tiene SyncObjs.TSemaphore ... En XE, tiene razón: uno puede esperar con el tiempo de espera 0 en Linux pero no en Windows. Estúpido – gabr