delphi 中使用WaitForMultipleObjects等待线程执行,再执行后续代码
2016-05-23 09:41
856 查看
unit1
[delphi] viewplain copy
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
btn1: TButton;
mmo1: TMemo;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
procedure ThreadTest;stdcall;
implementation
uses Unit2;
{$R *.dfm}
procedure ThreadTest;stdcall;
var
Handles:TWOHandleArray;
//Handle:THandle;
Test:TTestThread;
i:Integer;
begin
for i := 0 to 10 do
begin
Test := TTestThread.Create(False);
Handles[i] := Test.Handle;
end;
WaitForMultipleObjects( 11, @Handles, True, INFINITE );
Form1.mmo1.Lines.Add( '123' );
end;
procedure TForm1.btn1Click(Sender: TObject);
var
ID:Cardinal;
begin
CreateThread( nil, 0, @ThreadTest, nil, 0, ID );
end;
end.
unit2
[delphi] viewplain copy
unit Unit2;
interface
uses
Classes;
type
TTestThread = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
end;
implementation
uses Unit1;
procedure TTestThread.Execute;
begin
{ Place thread code here }
{ Place thread code here }
//FreeOnTerminate := False;
form1.mmo1.Lines.Add( 'ok' );
end;
end.
相关文章推荐
- Python3写爬虫(四)多线程实现数据爬取
- C#实现多线程的同步方法实例分析
- 浅谈chuck-lua中的多线程
- C#简单多线程同步和优先权用法实例
- C#多线程学习之(四)使用线程池进行多线程的自动管理
- C#多线程编程中的锁系统(三)
- 解析C#多线程编程中异步多线程的实现及线程池的使用
- C#多线程学习之(六)互斥对象用法实例
- 基于一个应用程序多线程误用的分析详解
- C#多线程学习之(三)生产者和消费者用法分析
- C#多线程学习之(一)多线程的相关概念分析
- C#多线程之Thread中Thread.IsAlive属性用法分析
- 分享我在工作中遇到的多线程下导致RCW无法释放的问题
- C#多线程编程之使用ReaderWriterLock类实现多用户读与单用户写同步的方法
- C#控制台下测试多线程的方法
- 21天学习android开发教程之SurfaceView与多线程的混搭
- Ruby 多线程的潜力和弱点分析
- C#中WPF使用多线程调用窗体组件的方法
- C#如何对多线程、多任务管理(demo)
- C#实现多线程的Web代理服务器实例