(*--- O programa a seguir apresenta o inverso de executar o programa quando usamos threads e sem threads.
responder. Ao clicar no botão usado, um thread é criado.
Ao alterar o tamanho do formulário e movê -lo. Quando o botão NousedThread for pressionado, se o tópico não for criado, enviaremos
Agora você não pode fazer mais nada antes que o programa seja calculado!
unidade de unidade1;
interface
usos
Janelas, mensagens, sysutils, variantes, classes, gráficos, controles, formulários,
Diálogos, stdctrls, botões;
tipo
Tform1 = classe (tform)
UsadoThread: tbitbtn;
NousedThread: tbitbtn;
Procedimento UtilizouThreadClick (remetente: Tobject);
Procedimento NousedThreadClick (remetente: TOBJECT);
Privado
{Declarações privadas}
público
{Declarações públicas}
fim;
var
Form1: TForm1;
Implementação
{$ R *.dfm}
função mythreadfunc (p: ponteiro): longnt; stdcall;
var
i: longint;
DC: HDC;
S: string;
Começar
Dc: = getDC (form1.handle);
para i: = 0 a 500000 Comece
S: = inttostr (i);
Textout (DC, 10,10, PCHar (s), comprimento (s));
fim;
Releftc (form1.handle, dc);
fim;
procedimento TForm1.UsedThreadClick (remetente: Tobject);
var
hthread: THANDLE; // Defina uma alça
ThreadID: DWORD;
Começar
// Crie um fio, e a função do thread é chamada ao mesmo tempo
hthread: = createThread (nil, 0,@mythreadfunc, nil, 0, threadID);
Se hthread = 0 então
MessageBox (Handle, 'DiNtCreateathRead', nil, mb_ok);
fim;
procedimento TForm1.NouSedThreadClick (remetente: Tobject);
Começar
Mythreadfunc (nulo);
// Quando nenhum encadeamento é criado, a função do encadeamento é chamada diretamente
fim;
fim.