Разрешить только 3 экземпляра приложения, использующего семафоры

Я пытаюсь реализовать простую рутину, используя семафоры, которая позволит мне запустить только 3 экземпляра приложения. Я мог бы использовать 3 мьютекса, но это не очень хороший подход, который я пробовал до сих пор

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;

Как я могу сделать это правильно ?

6
задан Marjan Venema 19 September 2011 в 06:18
поделиться