Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Тапсырмасының программасының листингі. Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,



unit Critsec;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton; ListBox1: TListBox; ListBox2: TListBox;

CheckBox1: TCheckBox;

procedure FormCreate(Sender: TObject);

procedure FormDestroy(Sender: TObject);

procedure Button1Click(Sender: TObject);

end;

var

Form1: TForm1;

crits: boolean;

sect1: TRTLCriticalSection;

global: word;

// 2 // hmut: thandle;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);

begin

initializeCriticalSection(sect1);

// 2 // hmut:= createmutex(nil,true,nil);

end;

procedure TForm1.FormDestroy(Sender: TObject);

begin

DeleteCriticalSection(sect1);

//2// closehandle(hmut);

end;

function Thr1 (p:pointer):longint; stdcall;

var i,j: integer;

begin

form1.listbox1.items.clear;

for j:=1 to 12 do

begin

if crits then

EnterCriticalSection (sect1);

//2// waitforsingleobject(hmut,infinite);

sleep(10);

i:=global; i:=i+1;

form1.listbox1.items.add(intToStr(i));

global:=i;

if crits then

LeaveCriticalSection(sect1);

//2// releasemutex(hmut);

end;

end;

function Thr2 (p:pointer):longint; stdcall;

var i,j: integer;

begin

form1.listbox2.items.clear;

for j:=1 to 12 do

begin

if crits then

EnterCriticalSection (sect1);

//2// waitforsingleobject(hmut,infinite);

sleep(7);

i:=global; i:=i+1;

form1.listbox2.items.add(intToStr(i));

global:=i;

if crits then

LeaveCriticalSection(sect1);

//2// releasemutex(hmut);

end;

end;

procedure TForm1.Button1Click(Sender: TObject);

var thrid: dword;

thrh1,thrh2: thandle;

begin

global:= 100;

if CheckBox1.Checked then crits:= true

else crits:= false;

thrh1:=CreateThread(nil,0,@Thr1,nil,0,thrid);

thrh2:=CreateThread(nil,0,@Thr2,nil,0,thrid);

end;

end.





Дата публикования: 2015-10-09; Прочитано: 253 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...