_beginthread创建进行,这个函数是标准库函数,可移植,其实这个函数也是调用CreateThread系统函数,不推荐使用CreateThread函数
#include <process.h>
/* function prototypes */
_CRTIMP uintptr_t __cdecl //返回值为HANDLE hStdOut的新线程句柄,如果失败返回-1
_beginthread (
_In_ void (__cdecl * _StartAddress) (void *), //线程函数启动地址,_StartAddress为线程函数启动地址
_In_ unsigned _StackSize, //堆栈空间大小
_In_opt_ void * _ArgList //传递给_StartAddress线程函数的参数列表,没有参数时设置为NULL
);
_CRTIMP void __cdecl _endthread(void); //暴力结束 线程
_CRTIMP uintptr_t __cdecl
_beginthreadex(
_In_opt_ void * _Security, //安全属性,默认安全属性为NULL
_In_ unsigned _StackSize, //堆栈空间大小
_In_ unsigned (__stdcall * _StartAddress) (void *), //启动线程函数
_In_opt_ void * _ArgList, //参数列表
_In_ unsigned _InitFlag, //新线程的工作状态,0表示立即执行,还有CREATE_SUPPEND表示创建后挂起
_Out_opt_ unsigned * _ThrdAddr //输出线程ID
);
_CRTIMP void __cdecl _endthreadex(_In_ unsigned _Retval);
MFC中创建线程
AfxBeginThread创建线程,
CWinThread* AFXAPI //返回值是线程指针
AfxBeginThread(
CRuntimeClass* pThreadClass, //线程函数,全局函数或是类的静态函数
int nPriority,
UINT nStackSize,//堆栈大小
DWORD dwCreateFlags, 创建标记
LPSECURITY_ATTRIBUTES lpSecurityAttr //安全属性
s)
实例练习
// ThreadB.cpp : 定义应用程序的入口点。
//
#include "stdafx.h"
#include "ThreadB.h"
#include <process.h>
#define MAX_LOADSTRING 100
VOID ThreadB(PVOID pVoid);
VOID ThreadC(PVOID pVoid);
// 全局变量:
HINSTANCE hInst; // 当前实例
TCHAR szTitle[MAX_LOADSTRING]; // 标题栏文本
TCHAR szWindowClass[MAX_LOADSTRING]; // 主窗口类名
HWND hWnd;
i

本文介绍了如何使用标准库函数 `_beginthread` 创建线程,该函数可移植且内部调用`CreateThread`。虽然`CreateThread`也被提及,但不建议直接使用。此外,还提到了MFC中的`AfxBeginThread`函数,并提供了实例练习。
最低0.47元/天 解锁文章
3403

被折叠的 条评论
为什么被折叠?



