我想实现一个简单的例程使用信号量,这将允许我只运行应用程序的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