易截截图软件、单文件、免安装、纯绿色、仅160KB

Delphi多线程学习(6):信号量Semaphore

信号量是建立在互斥量的基础之上,同时加入重要特性:提供了资源计数功能,因此预定义数量的线程同时可以进入同步的代码块中。
      信号量是维护0到指定最大值之间的计数器的同步对象,当线程完成一次信号量的等待时,计数器自减1,当线程释放信号量对象时,计数器自增1。
      借用上面的图书馆例子,信号量好像是多设几把管理钥匙。每次可以设定N把钥匙同时工作,那就有N个人员可以同时办理业务。
     信号量使用的一般步骤:
1、声明一个全局的信号量名柄,如:hSem:THandle;
2、创建信号量:CreateSemphore(
                              lpSemaphoreAttributes:PSecurityAttributes;
                              lInitialCount,lMaximumCount:LongInt;
                              lpName:PChar):THandle;stdcall;
  (lpSemaphoreAttributes参数,指向TSecurityAttributes记录的指针,一般可以缺省填入nil值;
    lInitialCount参数,是信号量对象的初始计数,是0~lMaximumCount之间的数。当它大于0时,信号量就进入了信号状态,当WaiForSingleObject函数释放了一个线程,信号量计数就减1。使用ReleaseSemphore函数可以增加信号量计数;
   lMaximumCount参数,是信号量对象计数的最大值;
   lpName参数,指定信号量的名字。)
3、用等待函数WaiForSingleObject协调线程。
4、当一个线程用完一个信号,释放。使用ReleaseSemphore(
                                              


相关文档:

Delphi下实现包含通配符的文本查找

本文最早在编程论坛上发表,文章地址:http://programbbs.com/bbs/view12-21351-1.htm,相关文件可以在上述地址的页面中下载。转载时请注明出处。
一、前言
通配符就是指“*”和“?”两个字符,“*”表示当前位置可以没有或者有多个任意字符;“?”表示当前位置有一个任意字符。 ......

Delphi中使用@取函数地址的问题

例如以下代码:
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs;
type
  TForm1 = class(TForm)
    procedure one();
    function two(x,y:integer):integer;
  private
    ......

Delphi之Tchart控件使用心得

Delphi之Tchart控件使用心得
    最近在学习delphi,做一个软件练手,用到Tchart控件,有些粗略的使用心得,供delphi初学者参考。
    TChart是delphi里面一个标准的图形显示控件。它可以静态设计(at design time)也可以动态生成。可下载Steema TeeChart 7,没有源代码,能用就好!
&nb ......

关于delphi Move函数的用法详解

使用delphi多年,前些天忽然遇到不会string转pbyte,很是失落,此时对于编程基本功的重要性深有体会.这其中用到MOVE函数.
使用delphi多年,前些天忽然遇到不会string转pbyte,很是失落,此时对于编程基本功的重要性深有体会.这其中用到MOVE函数.
 搞了好一会才搞明白其用法.所以想贴出来帮助需要帮助的人.
var
 &nb ......

郁金香delphi外挂编程(翻录版) 种子发布

http://www.91v1.cn/bbs/read.php?tid-1797.html
我们提供的是全套,目前他们发的.社区已录制完毕.一根毛不少.
-------------------------------------------------------------------------------------------------------------------------
该教程由91v1社区免费提供.具体免费领码详情观看种子包,
--------------- ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号