CreateThread传递多个参数的方法(利用结构体的参数指针)
很多朋友一直都在问CreateThread如何传递多个参数,CreateThread传递参数的方式是指针传递的,所以这里也可以利用指针来做!Demo 关键代码如下:
type
TfrmTestThread = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
PParData = ^TParData;
TParData = record
Count: Integer;
TestStr: string[100];
end;
var
frmTestThread: TfrmTestThread;
{$R *.dfm}
function TestThread(AParData: PParData): Boolean; stdcall;
var
I: Integer;
DC: HDC;
TestStr: string;
begin
DC := GetDC(frmTestThread.Handle);
SetBkColor(DC, GetSysColor(COLOR_BTNHIGHLIGHT));
for I := 1 to AParData.Count do
begin
TestStr := AParData.TestStr + IntToStr(I);
TextOut(DC, 10, 10, PChar(TestStr), Length(TestStr));
end;
ReleaseDC(frmTestThread.Handle, DC);
end;
procedure TfrmTestThread.Button1Click(Sender: TObject);
var
hThread: THandle;
ThreadID: DWord;
vParData: PParData;
begin
new(vParData);
vParData.Count := 10000;
vParData.TestStr := '多线程测试';
hThread := CreateThread(nil, 0, @TestThread, vParData, 0, ThreadID);
if hThread = 0 then
MessageBox(Handle, '创建失败!', nil, MB_OK);
end;
end.
http://www.xuedelphi.cn/article/html2010/2010091922162863.html
http://www.cnblogs.com/azhqiang/p/3957312.html
CreateThread传递多个参数的方法(利用结构体的参数指针)的更多相关文章
- c# 利用结构体获取json数据
最近做微信支付,要获取用户的openid,调用接口后返回的是json格式的数据,我想在c#后台把数据逐一取出,网上查了查,找到以下方法: 1.首先调用接口,要有一个post数据到指定url并返回数据的 ...
- C语言利用结构体数组实现学生成绩管理系统
这篇文章主要为大家详细介绍了C语言利用结构体数组实现学生成绩管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 要求: 某班有最多不超过30人(具体人数由键盘输入) ...
- C语言 结构体作为参数和返回值使用
方案一:结构体变量作为参数,进行传值. 编译器需要拷贝,不影响origin value,使用成员操作符(.)直接访问 /**************************************** ...
- C语言之:结构体动态分配内存(利用结构体数组保存不超过10个学生的信息,每个学生的信息包括:学号、姓名和三门课(高数、物理和英语 )的成绩和平均分(整型)。)
题目内容: 利用结构体数组保存不超过10个学生的信息,每个学生的信息包括:学号.姓名和三门课(高数.物理和英语 )的成绩和平均分(整型). 编写程序,从键盘输入学生的人数,然后依次输入每个学生的学号. ...
- swift 类 结构体 作为参数 以及可变参数
Class class Person{ var age = 22, name = "frank" func growolder() { self.age++ //++ 要跟住 不要 ...
- c 结构体中存在指针,指针的不同赋值方法
#include<stdio.h>#include<stdlib.h>#include<string.h>struct parameter{ char *fd; i ...
- C#,往线程里传参数的方法总结
Thread (ParameterizedThreadStart) 初始化 Thread 类的新实例,指定允许对象在线程启动时传递给线程的委托. Thread (ThreadStart) 初始化 ...
- C# 往线程里传参数的方法总结
Thread (ParameterizedThreadStart) 初始化 Thread 类的新实例,指定允许对象在线程启动时传递给线程的委托. Thread (ThreadStart) 初始化 ...
- c#多线程调用有参数的方法
Thread (ParameterizedThreadStart) 初始化 Thread 类的新实例,指定允许对象在线程启动时传递给线程的委托. Thread (ThreadStart) 初始 ...
随机推荐
- [Django] The admin interface
Now let's see how to access admin interface. 1. Create a super user which can access admin interface ...
- Docker for Windows 安装
原文:Docker for Windows 安装 前言: 环境:windows10专业版 64位 正文: 官方下载地址:https://hub.docker.com/editions/communit ...
- 【45.61%】【codeforces 701D】As Fast As Possible
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- Parallel.For
Parallel.For 你可能忽视的一个非常实用的重载方法 说起Parallel.For大家都不会陌生,很简单,不就是一个提供并行功能的for循环吗? 或许大家平时使用到的差不多就是其中最简单 ...
- Xcode7.1 网络请求报错
The resource could not be loaded because the App Transport Security policy reguir 原因:iOS9引入了新特性App T ...
- Delphi绘图相关对象(TCanvas对象的方法)
TCanvas对象的方法 方法 说明 Arc Arc(x1,y1,x2,y2,x3,y3,x4,y4 : Integer); Arc方法在椭圆上画一段弧,椭圆由(x1,y1).(x2,y2) 两点所确 ...
- VC++实现Vista和Win7系统低权限程序向高权限程序发消息
Windows 7已经隆重发布,但是很多程序员已经通过RTM等版本尝到了Windows 7的甜处.那么在Windows 7下用户界面特权隔离,将是本文我们介绍的重点. 我们介绍了操作系统服务的Sess ...
- Verilog分频器
verilog设计进阶 时间:2014年5月6日星期二 主要收获: 1.自己动手写了第一个verilog程序. 题目: 利用10M的时钟,设计一个单周期形状例如以下的周期波形. 思考: 最開始的想法是 ...
- android高仿人人网
经过几个月的努力,终于基本完成了人人API拥有的所有功能,界面采用仿照人人梦想版5.13制作,其中资源文件也采用人人的APK文件资源,完成的功能及知识点如下: 1.通过三种动画仿照出人人引导页的放大切 ...
- 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3)
原文 各个 C# 版本的主要特性.发布日期和发布方式(C# 1.0 - 7.3) 本文收集各个 C# 版本的主要特性.发布日期和发布方式. C# 8.0 尚在预览版本 C# 7.3 2018 年 5 ...