目录
一、初衷
网络上教程不够全面,要么只有CreateThread()的函数定义和简单实用方法,要么是有结构体输入但却不是多线程。
按照下面我写的代码,可以将既有结构体输入,又能执行多线程。
结构体输入的目的是:子线程函数ThreadFunction()输入有一定的讲究,而我们自己写的函数有很多参数输入,这时候可以将我们输入的参数组合起来作为结构体,再输入到ThreadFunction()函数中去。同时我们想要的输出也可以定义到结构体中。以下面代码为例,我们可以将结构体中的a作为输入,b作为输出。
二、代码(C++)
#include <stdio.h>
#include <windows.h>
struct ThreadParameter {
int a;
int b;
char user[10];
char name[10];
};
DWORD WINAPI ThreadFunction(LPVOID pParam) {
ThreadParameter *tp = (ThreadParameter *)pParam; //强制转换参数
char user[10];
char pass[10];
strcpy(user, tp->user);
strcpy(pass, tp->name);
printf("User = %s pass = %s \r\n", user, pass);
Sleep(1000);
tp->b = tp->a + 100;
return 0;
}