📄 syncobjs2.pas
字号:
unit SyncObjs2;
interface
uses windows;
type TSemaphore=class
private
handle: THandle;
public
procedure Aquire;
procedure Release;
constructor create(maxcount: integer);
destructor destroy; override;
end;
implementation
constructor TSemaphore.create(maxcount:integer);
begin
handle:=CreateSemaphore(nil,maxcount,maxcount,'');
end;
destructor TSemaphore.destroy;
begin
closehandle(handle);
end;
procedure TSemaphore.Aquire;
begin
waitforsingleobject(handle,infinite);
end;
procedure TSemaphore.Release;
var previouscount: dword;
begin
releasesemaphore(handle,1,@previouscount);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -