Source file: /~heha/hs/thread.zip/THREADEX.PAS

{Demonstrativ-Beispiel zur Threadprogrammierung mit der Unit threads}
{(c) haftmann#software Chemnitz 1996}
program ThreadExample;

uses threads;

{Thread-Prozedur}
procedure MyThread(C:Char); far;
 var
  I:Integer;
 begin
  I:=0;
  repeat
   Write(C);
   Yield; Yield;	{"Geringere Priorität"}
   Inc(I);
   if I=1000 then break;	{Implizite Selbsttötung}
  until false;
 end;			{Hier ruht ein Thread ('C') in Frieden (RIP)}

var
 I:Integer;
 P:PThread;
{Hauptprogramm}
begin
 P:=CreateThread(@MyThread,LongInt('B'),4096);
 CreateThread(@MyThread,LongInt('C'),1024);
 I:=0;
 repeat
  Write('A');
  Yield;
  Inc(I);
  if I=1000 then begin
   KillThread(P);	{Beispiel, fremden Thread ('B') zu töten}
  end;
  if I=3000 then break;
 until false;
 WriteLn;
end.
Detected encoding: OEM (CP437)1
Wrong umlauts? - Assume file is ANSI (CP1252) encoded