zoukankan      html  css  js  c++  java
  • 《Windows核心编程》——线程

    • 组成:线程内核对象+线程栈
    • 多线程应用程序:
      • 通常情况下,一个应用程序拥有一个用户界面线程,用于创建所有窗口,并且有一个GetMessage循环。
      • 进程中的所有其他线程都是工作线程,它们与计算机或 I/O相关联,但是这些线程从不创建窗口。
      • 一个用户界面线程通常拥有比工作线程更高的优先级,因此用户界面负责向用户作出响应。
    • 线程函数:
      • 主线程的进入点函数的名字必须是main、wmain、WinMain或wWinMain。
      • 与这些函数不同的是,线程函数可以使用任何名字。
      • 由于给你的主线程的进入点函数传递了字符串参数,因此可以使用ANSI/Unicode版本的进入点函数:main/wmain和WinMain/wWinMain。
      • 可以给线程函数传递单个参数,参数的含义由你而不是由操作系统来定义。因此,不必担心ANSI/Unicode问题。
    • CreateThread函数:
       1 typedef DWORD (WINAPI *LPTHREAD_START_ROUTINE)(LPVOID pvarg);
       2 
       3 HANDLE CreateThread(
       4    LPSECURITY_ATTRIBUTES lpsa, 
       5    DWORD cbStack, //线程栈大小,WinCE默认64K
       6    LPTHREAD_START_ROUTINE lpStartAddr, //入口点函数
       7    LPVOID lpvThreadParam, 
       8    DWORD fdwCreate, 
       9    LPDWORD lpIDThread
      10  );
    • 终止线程:
      •  线程函数返回(最好使用这种方法)。
      •  通过调用ExitThread函数,线程将自行撤消(最好不要使用这种方法)。
      •  同一个进程或另一个进程中的线程调用TerminateThread函数(应该避免使用这种方法)。
      •  包含线程的进程终止运行(应该避免使用这种方法)。
  • 相关阅读:
    OkHttp的基本使用方法
    C#中Dictionary小记
    SQL Server表的数据量大小查询
    基于.NET平台常用的框架整理
    JQuery中ajax的相关方法总结
    JQuery中的工具函数总结
    Asp.net MVC 中Controller返回值类型ActionResult
    Plupload文件上传组件使用API
    HTTP 方法:GET 对比 POST
    C#使用简单邮件传输协议(SMTP)发送邮件
  • 原文地址:https://www.cnblogs.com/dahai/p/2819092.html
Copyright © 2011-2022 走看看