之前也接触过一些关于多线程的技术文章,但却总是很模糊的状态的,最近通过一个Demo 来一步步理解多线程以及线程同步技术。这篇文章主要是使用Delphi 提供的API 函数来创建线程,今后有时间写一下Delphi中如何使用TThread类创建线程,以方便今后查阅。
可是我们发现一旦程序运行后,程序就出现‘假死’,等了一会就直接显示99999,完全看不到数字跳动的过程。为了能够看到数字跳动的过程,可以在循环中加一句 Application.ProcessMessage(); 但这不是很好的方法,我们可以使用多线程来更好的实现。
试想,如果想要创建一个小程序,程序中的Label控件上不断闪动着我们的实时数据。为了简化,这个小程序的功能就只是循环在Label上显示一个不断增加的数字,直到这个数字达到99999为止。那么我们很容易这样写:
<span style="font-size:18px;">procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
for i:=0 to 99999 do
begin
Label1.Caption := InttoStr(i);
end;
end;</span>
可是我们发现一旦程序运行后,程序就出现‘假死’,等了一会就直接显示99999,完全看不到数字跳动的过程。为了能够看到数字跳动的过程,可以在循环中加一句 Application.ProcessMessage(); 但这不是很好的方法,我们可以使用多线程来更好的实现。
无论是delphi 还是C++创建多线程,首先要建立一个线程函数&#x