我想實現一個簡單的例程使用信號量,這將允許我只運行應用程序的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;
我怎樣才能做到這正常嗎?
偉大的編碼器,很好的答案。謝謝 ! – opc0de
+1有點令人失望的是'SyncObjs.TSemaphore'不適合定時等待。或者我錯過了什麼。 –
D2007甚至沒有SyncObjs.TSemaphore ...在XE中,您是正確的 - 可以在Linux中等待超時0,但不能在Windows上等待。愚蠢的 – gabr