Tôi đang cố gắng thực hiện một thói quen đơn giản bằng cách sử dụng các ẩn dụ cho phép tôi chỉ chạy 3 phiên bản của ứng dụng. Tôi có thể sử dụng 3 mutexes nhưng đó không phải là một cách tiếp cận tốt đẹp tôi đã cố gắng này cho đến nayChỉ cho phép 3 trường hợp của một ứng dụng bằng cách sử dụng các semaphores
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;
Làm thế nào tôi có thể làm điều này đúng?
Trình lập trình tuyệt vời, câu trả lời tuyệt vời. Cảm ơn ! – opc0de
+1 Hơi thất vọng khi 'SyncObjs.TSemaphore' không phục vụ cho thời gian chờ đợi. Hay tôi đã bỏ lỡ điều gì đó. –
D2007 thậm chí không có SyncObjs.TSemaphore ... Trong XE, bạn chính xác - người ta có thể chờ với thời gian chờ 0 trong Linux nhưng không phải trên Windows. Ngu ngốc – gabr