Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
17
Добавлен:
02.05.2014
Размер:
1.32 Кб
Скачать
unit Unit1;

interface

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

type
TmainForm = class(TForm)
Button1: TButton;
ListBox1: TListBox;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure SomeDo(sender:tobject);
end;
tfoothread=class(tthread)
protected
procedure Execute;override;
public
{ Public declarations }
end;

var
mainForm: TmainForm;

implementation
{$R *.dfm}

const n=128;
var next:integer=0;
df:integer=0;
ar:array[1..n]of integer;
mut:thandle=0;
function getnumber:integer;
begin
result:=next;
inc(next);
end;

procedure TFoothread.Execute;
var i:integer;
begin
freeonterminate:=true;
onterminate:=mainform.SomeDo;
if waitforsingleobject(mut,infinite)=wait_object_0 then
for i:=1 to n do
begin
ar[i]:=getnumber;
sleep(5);
end;
releasemutex(mut);
end;

procedure tmainform.SomeDo(sender:tobject);
var i:integer;
begin
inc(df);
if df=2 then
begin
for i:=1 to n do
listbox1.Items.Add(inttostr(ar[i]));
closehandle(mut);
end;
end;


procedure TmainForm.Button1Click(Sender: TObject);
begin
mut:=createmutex(nil,false,nil);
tfoothread.Create(false);
tfoothread.Create(false);
end;



end.

Соседние файлы в папке primermutex
  • #
    02.05.2014197 б17Project1.dpr
  • #
    02.05.2014876 б19Project1.res
  • #
    02.05.20144.99 Кб17Unit1.dcu
  • #
    02.05.201451 б17Unit1.ddp
  • #
    02.05.2014740 б17Unit1.dfm
  • #
    02.05.20141.32 Кб17Unit1.pas
  • #
    02.05.201451 б17Unit1.~ddp
  • #
    02.05.2014740 б17Unit1.~dfm
  • #
    02.05.20141.46 Кб18Unit1.~pas