- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Windows线程 Win32 API Win32 API提供了一系列处理线程的函数接口 直接用Win32 API编写的应用程序,执行代码小,运行效率高 MFC 用类库的方式将Win32 API 封装, 以类的方式提供给开发者 提供了对多线程的支持 MFC对同步对象作了封装 MFC具有其快速、简捷、功能强大等特点 .NET Framework 由两部分构成:公共语言运行库(CLR)和Framework类库(FCL) CLR包括自己的文件加载器、垃圾收集器、安全系统等 Framework类库提供了所有应用程序模型都要使用的一个面向对象的API集合 使用win32线程API 线程创建 HANDLE CreateThread ( LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId ); CreateThread的参数 lpThreadAttributes是指向SECURITY_ATTRIBUTES型态的结构的指针。 dwStackSize是用于新线程的初始堆栈大小,默认值为0。在任何情况下,Windows根据需要动态延长堆栈的大小。 lpStartAddress是指向线程函数的指标。函数名称没有限制,但是必须以下列形式声明:DWORD WINAPI ThreadProc (PVOID pParam) ; lpParameter为传递给ThreadProc的参数。这样主线程和从属线程就可以共享数据。 dwCreationFlags通常为0,但当建立的线程不马上执行时为指标CREATE_SUSPENDED。线程将暂停直到呼叫ResumeThread来恢复线程的执行为止。 lpThreadId是一个指标,指向接受执行者ID值的变量。 _beginthread 可以用_beginthread 代替: PROCESS.H表头文件中声明的C执行时期链接库函数_beginthread。它的语法如下:hThread = _beginthread (ThreadProc, uiStackSize, pParam) ; 这个线程函数的语法为:void __cdecl ThreadProc (void * pParam) ; 编译环境 线程管理 设置线程的优先级 线程优先级 = 进程优先级 + 线程相对优先级 Bool SetThreadPriority (HANDLE hPriority , int nPriority) 线程的挂起与恢复 进程中的每个线程都有挂起计数器(suspend count) 。当挂起计数器值为0 时,线程被执行;当挂起计数器值大于0 时,调度器不去调度该线程。 DWORD SuspendThread(HANDLE hThread); DWORD ResumeThread(HANDLE hThread); 线程等待 能使线程阻塞其自身执行的等待函数: DWORD WaitForSingleObject(HANDLE hObject, // 等待的核心对象 DWORD dwTimeout ) ; // 线程愿意等待的毫秒数(值为INFINITE时表示无限等待) 返回值 定义 含义 WAIT_OBJECT_0 0 对象达到有信号 WAIT_TIMEOUT 0 对象没有在dwTimeout毫秒内到达有信号状态 WAIT_ABANDONED 0对象是一个互斥量,由于它被放弃了而达到有信号状态 WAIT_FAILED 0xFFFFFFFF 发生错误。调用GetLastError以取得扩展的错误信息 DWORD WaitForMultipleObject(DWORD cObject, // 检查核心对象的数目 LPHANDLE lpHandles, // 指向这些对象的句柄的数组 BOOL bWaitAll, // 是否等待所有对象变成有信号 DWORD dwTimeout); // 线程愿意等待的时间(毫秒数) 线程终结 在线程的里面终止线程 VOID ExitThread (DWORD dwExitCode) ; 在线程的外面终止线程 BOOL TerminateThread (HANDLE hThread, DWORDdw ExitCode) ; 例子1
您可能关注的文档
- C++程序设计教程:CH13 抽象类.ppt
- C++程序设计教程:CH15 异常.ppt
- C++程序设计教程:第十一章 基于对象编程.ppt
- C++程序设计教程:第十章 继承.ppt
- C++程序设计教程:第一部分 C++过程化语言基础.ppt
- C++程序设计教程:第一部分 C++过程化语言基础1.ppt
- C语言程序设计:第9章 用户自己建立数据类型.ppt
- C语言程序设计:第10章 对文件的输入输出.ppt
- C语言程序设计:选择题.ppt
- JAVA程序设计:第3章 Java语言基础.ppt
- 大学数学微积分课件:第01讲大学数学基础.ppt
- 大学数学微积分课件:第02讲 映射与函数.ppt
- 大学数学微积分课件:第03讲 第二节、数列的极限 第三节、函数的极限.ppt
- 大学数学微积分课件:第04讲 第四节、无穷小与无穷大 第五节、极限运算法则.ppt
- 大学数学微积分课件:第05讲 第六节、极限存在准则 第七节、无穷小的比较.ppt
- 大学数学微积分课件:第06讲 第八节、函数的连续性与间断点第九节、连续函数的运算与初等函数的连续性第十节、闭区间上连续函数的性质.ppt
- 大学数学微积分课件:第07讲习题课1.ppt
- 大学数学微积分课件:第08讲 第一节、导数概念第二节、函数的求导法则(1).ppt
- 大学数学微积分课件:第09讲 第二节、函数的求导法则(2)(3)第三节、高阶导数.ppt
- 大学数学微积分课件:第10讲 第四节、隐函数的导数,由参数方程所确定的函数的导数第五节、函数的微分.ppt
文档评论(0)