zoukankan      html  css  js  c++  java
  • windows核心编程线程note

    HANDLE CreateThread(
    LPSECURITY_ATTRIBUTES psa,
    DWORD cbStackSize,
    LPTHREAD_START_ROUTINE pfnStartAddr,
    PVOID pvParam,
    DWORD dwCreationFlags,
    PDWORD pdwThreadID);

    pfnStartAddr参数指定希望新线程执行的线程函数的地址。线程函数的pvParam参数与最初给CreateThread函数的pvParam参数是一样的,CreateThread不用这个参数做别的事情,只是在线程开始执行时候将其传给线程函数。通过这个参数,可以将一个初始值传给线程函数,这个初始值可以是一个数值,也可以是指向一个数据结构(其中包含额外的信息)的指针。

    例如:

    struct ThreadInfo
    {
    int serial; //the serial number of the thread
    char entity; //type of thread(reader or writer)
    double delay; //delay of thread
    double persist; //time of thread's read and write operation
    };

    void WP_ReaderThread(void *p);

    CreateThread(NULL, 0,
      (LPTHREAD_START_ROUTINE)(WP_ReaderThread),
      &thread_info[i],
      0,
      &thread_ID);
    HANDLE GetCurrentThread();

    返回线程内核对象的一个伪句柄(pseudohandle),不会影响线程内核对象的使用计数。如果调用CloseHandle,将一个伪句柄作为参数传入,CloseHandle只是简单地忽略此调用,并返回FALSE,在这种情况下,GetLastError将返回ERROR_INVALID_HANDLE。

    使用DuplicateHandle函数可以将伪句柄转换为一个真正的句柄


  • 相关阅读:
    js 跳转链接的几种方式
    js 指定分隔符连接数组元素join()
    Ajax async属性
    非负数正则表达式
    firefox因 HTTP 严格传输安全(HSTS)机制无法打开网页
    查看linux系统某宏的定义(另类)
    ctags高级用法
    ctags简明用法
    关于数组和指针的一道例题的解读
    让gcc和gdb支持intel格式的汇编
  • 原文地址:https://www.cnblogs.com/leealvin/p/2430959.html
Copyright © 2011-2022 走看看