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

Delphi多线程学习(4):临界区

 临界区是一段代码,一次只允许一个线程执行这段代码。当把一段代码放入一个临界区, 线程执行到临界区时就独占了, 其他线程如果要访问这段代码,一定要等前一个访问的线程结束才行。借用前面的比喻比作图书馆,临界区就像把图书馆设计成只有一个位置(现实中好像不太合理,不管了,反正这么个意思),当有一个人正在办理业务时,其他人只能等待那个人办完业务才能进去。
    使用临界区的步骤:
    1、声明一个TRLCriticalSection记录类型的变量如CS,必须是全局的;
    2、使用前先初始化:InitializeCriticalSection(CS);
    3、EnterCriticalSection(CS);  线程进入临界区,其他线程需要等待
    4、LeaveCriticalSection(CS);  线程离开临界区,其他线程可以访问了
    5、DeleteCriticalSection(CS); 最后删除临界区
重写前文的例子,如下:
{主窗体代码}
unit Unit2;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm2 = class(TForm)
ListBox1: TListBox;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form2: TForm2;
CS:TRTLCriticalSection; //全局临界区变量
implementation

uses MyThread;

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
TMyThread.Create(False);
TMyThread.Create(False);
TMyThread.Create(False);
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
InitializeCriticalSection(CS); //初始化
end;

procedure TForm2.FormDestroy(Sender: TObject);
begin
DeleteCriticalSection(CS); //删除
end;

end.{线程类}
unit MyThread;

interface

uses
Classes,StdCtrls,SysUtils,Windows;

type
TMyThread = class(TThread)
private
{ Private declarations }
str:String;
procedure AddList;
protected
procedure Execute


相关文档:

SDL & Object Pascal (Delphi) [前言]

实际上这个名字叫[SDL & Delphi]也不成问题, 因为除了Delphi似乎也没有哪个流行的开发工具用的是Pascal语言。
SDL其实我也只学了不到两星期而已。刚开始我想试图用VC,因为这样资料最全,也很好找,但太久没用VC现在看C的代码有点困难(->这个算符是干吗的来着……)。其实作为一个专业不是计算机的人 ......

SDL & Object Pascal (Delphi) [3] 制作一个选单


一个选单大致是这样:
1.可以被以某种形式呼叫出来,如按下esc;
2.在这个选单中功能键有不同的定义,如原本方向键控制走路,但现在改为控制光标的位置;
3.按下确定键后有对应功能被执行;
4.可以被关闭。
那么我的办法是编写两个子程,其中一个处理选单中的事件,另外一个专门负责画选单。
在从步行切换到选单 ......

delphi指针简单入门:


    
 指针用法的例子:  
  1         var  
  2             X,   Y:   Integer;       //   X   and   Y   整数类型  
  3       &n ......

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

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