这段多线程代码为什么不稳定

求助:这段多线程代码为什么不稳定?
先描述一下情况:

程序用一按钮启动定时器(触发间隔5秒),定时器内循环创建8个线程,传递多个参数。线程函数就是在内存里面创建一个位图,然后写字。程序运行几分钟,或十几分钟后就会崩溃,无法定位出错点。

线程内的代码都是局部变量,也没有操作窗口上面的控件,我就不明白为什么不稳定?

初学delphi不久,折腾了一个星期无果,来此求助。不胜感激。

全部代码就这么点:

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Timer1: TTimer;
    Image1: TImage;
    Button2: TButton;
    Image2: TImage;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

  PParData = ^TParData;

  TParData = record
     cardNum:Integer;
     stationName:string;
     trunkNo:string;
     relatedFormID:string;
     materialName:string;
     taskState:string;
     materialNum:Integer;
     sl1:integer;
  end;
var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Timer1.Enabled:=True;//启动定时器
end;


function LEDThread(AParData: PParData):Boolean; stdcall;
var
  txtRect: Trect;
  fontObj: Longint;
  hBrush: Longint;
  memDC: Longint;
  hDisplayDC: Longint;
  newBitmap: Longint;
  oldpBitmap: Longint;
  myFont: Longint;
  oneItem:string;
begin
  hDisplayDC := GetDC(0);
  memDC := CreateCompatibleDC(hDisplayDC);
  newBitmap := CreateCompatibleBitmap(hDisplayDC, 320, 96);
  oldpBitmap := SelectObject(memDC, newBitmap);
  SetBkMode(memDC, TRANSPARENT);
  hBrush := CreateSolidBrush(0);
  FillRect(memDC, txtRect, hBrush);
  DeleteObject(hBrush);