Sto tentando di implementare una semplice routine utilizzando i semafori che mi consentiranno di eseguire solo 3 istanze dell'applicazione. Potrei usare 3 mutex ma non è un buon approccio ho provato fino ad oraConsenti solo 3 istanze di un'applicazione utilizzando i semafori
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;
Come posso farlo correttamente?
Grande codificatore, ottima risposta. Grazie ! – opc0de
+1 Un po 'deludente per il fatto che 'SyncObjs.TSemaphore' non soddisfa le attese temporizzate. O mi sono perso qualcosa. –
D2007 non ha nemmeno SyncObjs.TSemaphore ... In XE, sei corretto - puoi aspettare con timeout 0 in Linux ma non su Windows. Stupid – gabr