for i := 1 to 6000 do
begin
//WaitFor Semaphore会尝试将hSemaphore++,但你的CreateSemaphore的初始值是ReleaseCount,即等于最大值,将它变为0,就要waitfor返回了
WaitForSingleObject(hSemaphore,INFINITE); p1:=@i;
hMasterThread[i]:=CreateThread(nil,0,@checkport,p1,0,dwThreadID[i]);
if hMasterThread[i]=0 then
APPLICATION.MessageBox('thread创建错误!','注意',mb_ok);
//WaitFor到这里,当hSemaphore被Release才会能-1;
WaitForSingleObject(hSemaphore,INFINITE);
end;//for
begin
//WaitFor Semaphore会尝试将hSemaphore++,但你的CreateSemaphore的初始值是ReleaseCount,即等于最大值,将它变为0,就要waitfor返回了
WaitForSingleObject(hSemaphore,INFINITE); p1:=@i;
hMasterThread[i]:=CreateThread(nil,0,@checkport,p1,0,dwThreadID[i]);
if hMasterThread[i]=0 then
APPLICATION.MessageBox('thread创建错误!','注意',mb_ok);
//WaitFor到这里,当hSemaphore被Release才会能-1;
WaitForSingleObject(hSemaphore,INFINITE);
end;//for
解决方案 »
- 请教:几个加密字符的加密方法
- 最稳定的DELPHI版本是哪个?
- 接个小项目,各位大侠看看要多少钱合适呀。急,在线ing....
- DELPHI 中的pchar,@, THandle 等对应C#应该是什么?
- 关于使用程序来管理 物理内存的 分配?
- 一个数学计算问题
- 关于组件的问题
- 请问treeview是否可以通过程序的代码模拟点击某个节点的事件
- 送分:如何用ADO存储进程控件编程
- 怎样实现匿名发oicq的消息,有人知道oicq的消息接收,以及发送的规律吗?
- sql server中text,image类型的数据是以什么形式存放的?
- DirectoryExists('A:\')为什么返回值为FALSE?调用SelectDirectory选择A:为什么报I/O出错?
WaitFor //当Semaphore没超过最大引用计数,则Semaphore++,返回,如超过最大计数器则阻塞进程,
ReleaseSemaphore //将Semaphore引用计数据减一,如有waitfor则返回