(*--- Program berikut memperkenalkan kebalikan dari menjalankan program saat kami menggunakan utas dan tanpa utas.
menjawab. Saat mengklik tombol bekas, sebuah utas dibuat.
Saat mengubah ukuran bentuk dan memindahkannya. Saat tombol nousedthread ditekan, jika utasnya tidak dibuat, kami akan mengirim
Sekarang Anda tidak dapat melakukan hal lain sebelum program dihitung!
unit unit1;
antarmuka
penggunaan
Windows, pesan, sysutils, varian, kelas, grafik, kontrol, formulir,
Dialog, stdctrls, tombol;
jenis
Tform1 = class (tform)
UsedThread: tbitbtn;
Nousedthread: tbitbtn;
Prosedur UsedThreadClick (Pengirim: Tobject);
Prosedur NousedThreadClick (pengirim: TOBJEK);
Pribadi
{Deklarasi Pribadi}
publik
{Deklarasi Publik}
akhir;
var
Form1: tform1;
Pelaksanaan
{$ R *.dfm}
function myThreadfunc (p: pointer): longint; stdcall;
var
I: Longint;
DC: HDC;
S: string;
Mulai
Dc: = getDc (form1.handle);
untuk i: = 0 hingga 500000 Mulai
S: = inttoStr (i);
TextOut (DC, 10,10, PCHAR (S), PANJANG (S));
akhir;
Dirilis (Form1.handle, DC);
akhir;
Prosedur TFORM1.USEDTHREADCLICK (pengirim: TOBJEKS);
var
hthread: thandle; // tentukan pegangan
ThreadID: DWORD;
Mulai
// Buat utas, dan fungsi utas dipanggil secara bersamaan
hThread: = createThread (nil, 0,@mythreadfunc, nil, 0, threadId);
Jika hthread = 0 lalu
MessageBox (handle, 'Don'tcreateathread', nil, MB_OK);
akhir;
Prosedur TFORM1.NOUSEDTHREADCLICK (Pengirim: Tobject);
Mulai
MyThreadfunc (nil);
// Saat tidak ada utas yang dibuat, fungsi utas dipanggil secara langsung
akhir;
akhir.