只允许应用程序有 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;
我怎样才能正确地做到这一点?
I am trying to implement a simple routine using semaphores that will allow me to run only 3 instances of the application. I could use 3 mutexes but that is not a nice approach i tried this so far
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;
How can i do this properly ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
始终确保释放信号量,因为如果应用程序终止,这不会自动完成。
Always make sure that you release a semaphore because this is not done automatically if your application dies.
您可以使用 JCL。
You could use
TJclAppInstances
from the JCL.干杯
Cheers