delphi——多线程(1)
来源:互联网 发布:ubuntu常用软件 编辑:程序博客网 时间:2024/06/05 19:52
一、
在 Delphi 中使用多线程有两种方法: 调用 API、使用 TThread 类; 使用 API 的代码更简单.
function MyFun(p: Pointer): Integer; stdcall;var i: Integer;begin for i := 0 to 500000 do begin Form1.Canvas.Lock; Form1.Canvas.TextOut(10, 10, IntToStr(i)); Form1.Canvas.Unlock; end; Result := 0;end;procedure TForm1.Button1Click(Sender: TObject);var ID: THandle;begin CreateThread(nil, 0, @MyFun, nil, 0, ID);end;
二、
TThread 类实现
type TMyThread = class(TThread) protected procedure Execute; override; end;procedure TMyThread.Execute;var i: Integer;begin FreeOnTerminate := True; {这可以让线程执行完毕后随即释放} for i := 0 to 500000 do begin Form1.Canvas.Lock; Form1.Canvas.TextOut(10, 10, IntToStr(i)); Form1.Canvas.Unlock; end;end;procedure TForm1.Button1Click(Sender: TObject);begin TMyThread.Create(False);end;
三、
在 Windows 上建立一个线程, 离不开 CreateThread 函数;
TThread.Create 就是先调用了 BeginThread (Delphi 自定义的), BeginThread 又调用的 CreateThread.
function CreateThread( lpThreadAttributes: Pointer; {安全设置} dwStackSize: DWORD; {堆栈大小} lpStartAddress: TFNThreadStartRoutine; {入口函数} lpParameter: Pointer; {函数参数} dwCreationFlags: DWORD; {启动选项} var lpThreadId: DWORD {输出线程 ID }): THandle; stdcall; {返回线程句柄}
0 0
- delphi——多线程(1)
- Delphi 多线程编程(1)
- 【Delphi】多线程使用(1)
- delphi多线程(2)
- delphi 多线程(一)
- Delphi 多线程编程(3)
- Delphi 多线程 (API篇)
- delphi多线程
- delphi多线程
- delphi 多线程
- delphi多线程
- delphi多线程
- delphi 多线程
- Delphi多线程
- delphi多线程
- delphi多线程
- delphi多线程
- Delphi工具—反编译Delphi(二)
- SqlParameter的作用与用法
- 留数定理
- 第13周项目5(2)2连接数组
- 触发器(trigger):监视某种情况,并触发某种操作。
- Java RMI学习
- delphi——多线程(1)
- iOS Xcode, 解决“Could not insert new outlet connection”的问题
- [Leetcode]Palindrome Partitioning
- MySQL schema设计中的陷阱
- linux脚本之简单实例
- 调节SecureCRT的字体颜色
- 五个有趣的拓扑变换问题(转)
- c调lua, lua调c
- Android NDK调试C++源码