zoukankan      html  css  js  c++  java
  • 创建线程CreateThread()

     1 函数原型
     2 MSDN中CreateThread原型:
     3 HANDLE CreateThread(
     4   LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD
     5   SIZE_T dwStackSize, // initial stack size
     6   LPTHREAD_START_ROUTINE lpStartAddress, // thread function
     7   LPVOID lpParameter, // thread argument
     8   DWORD dwCreationFlags, // creation option
     9   LPDWORD lpThreadId // thread identifier
    10   );
    11 参数说明
    12 lpThreadAttributes:指向SECURITY_ATTRIBUTES型态的结构的指针。在Windows 98中忽略该参数。在Windows NT中,NULL使用默认安全性,不可以被子线程继承,否则需要定义一个结构体将它的bInheritHandle成员初始化为TRUE
    13 dwStackSize,设置初始栈的大小,以字节为单位,如果为0,那么默认将使用与调用该函数的线程相同的栈空间大小。任何情况下,Windows根据需要动态延长堆栈的大小。
    14 lpStartAddress,指向线程函数的指针,形式:@函数名,函数名称没有限制,但是必须以下列形式声明:
    15 DWORD WINAPI ThreadProc (LPVOID lpParam) ,格式不正确将无法调用成功。
    16 //也可以直接调用void类型
    17 //但lpStartAddress要这样通过LPTHREAD_START_ROUTINE转换如:(LPTHREAD_START_ROUTINE)MyVoid
    18 //然后在线程声明为:
    19 void MyVoid()
    20 {
    21 return;
    22 }
    23 lpParameter:向线程函数传递的参数,是一个指向结构的指针,不需传递参数时,为NULL。
    24 dwCreationFlags :线程标志,可取值如下
    251)CREATE_SUSPENDED(0x00000004):创建一个挂起的线程,
    2620:表示创建后立即激活。
    273)STACK_SIZE_PARAM_IS_A_RESERVATION(0x00010000):dwStackSize参数指定初始的保留堆栈的大小,否则,dwStackSize指定提交的大小。该标记值在Windows 2000/NT and Windows Me/98/95上不支持。
    28 lpThreadId:保存新线程的id。
    29 返回值:
    30 函数成功,返回线程句柄;函数失败返回false。
    31 若不想返回线程ID,设置值为NULL。
    32 函数说明:
    33 创建一个线程。
    34 语法:
    35 hThread = CreateThread (&security_attributes, dwStackSize, ThreadProc,pParam, dwFlags, &idThread) ;
    36 一般并不推荐使用 CreateThread函数,而推荐使用RTL库里的System单元中定义的 BeginThread函数,因为这除了能创建一个线程和一个入口函数以外,还增加了几项保护措施。
    37 在MFC程序中,应该调用AfxBeginThread函数,在Visual C++程序中应调用_beginthreadex函数。
  • 相关阅读:
    Delphi中TFlowPanel实现滚动条效果
    Delphi组件开发-在窗体标题栏添加按钮(使用MakeObjectInstance(NewWndProc),并处理好多消息)
    减小Delphi的Exe文件大小(11种方法)
    画出太极图
    类似地图的以鼠标为中心缩放图像
    andoid x项目的优化 1
    ICON图标文件解析
    所有语言的Awesome(2)
    获取EIP(汇编语言直接给Delphi变量赋值)
    Qt Windows下链接子系统与入口函数(终结版)(可同时存在main和WinMain函数)
  • 原文地址:https://www.cnblogs.com/sevenology/p/3105926.html
Copyright © 2011-2022 走看看