NUU_CSIE 板


LINE

最近受WinAPI荼毒很大 晚上睡觉都会因为这个恶梦突然惊醒和睡不着 所以讲一些东西让大家一起被荼毒好了(误) 以下,我们指介绍WinAPI中的ThreadEvent 其他东西太多,有用到的就自己去查吧 因为我习惯只讲常用的东西,不常用的就自己看吧 Thread在很多地方都可以看得到 现在很多语言也都有支援Thread的用法 像是Java、VC++、C#之类的语言 但是像纯C/C++,自身没有这样的lib或函数可以使用 必须额外的去载用pthread才能够使用 而pthread是Linux底下的POSIX Thread 因此,若不想额外载用lib的话,实质上C/C++是没辄的 但是这个部份,M$有帮Programmer增加这样的功能 也就是所谓的WinAPI 不过这些API的参数实在是很难看的懂 没有去查winbase.h,实在是不懂原始的型态是什麽鬼 所以真的要用WinAPI的人,记得翻一下 好,废话讲太多了,接着来讲Thread 要建一个Thread,则是利用下面这个函数: HANDLE CreateThread ( LPSECURITY_ATTRIBUTES IpThreadAttributes, DWORD dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID IpParameter, DWORD dwCreationFlags, LPDWORD IpThreadId ); 见识到了吗?这就是WinAPI诡谲的参数? 当然,不用管他那麽多,有些参数就直接设deafault值就好 下面来个别解释每一个参数的意义,这个部份我也是参考来的: lpThreadAttributes 描述施行於新执行绪的security属性。 NULL表示使用预设值 dwStackSize 新执行绪拥有自己的堆叠。 0表示使用预设大小 : 1MB lpStartAddress 新执行绪将开始的起始位址。传入一个函式。 lpParameter 此值将被传送到所上述指定的新执行绪函式作为 参数,就是把你要执行的函数参数传进来 dwCreationFlags 允许你产生一个暂时虚悬的执行绪。 预设情况是0,就是立即开始执行。 lpThreadId 新执行绪的ID会被传回到这里 光是这样解释,我想应该是没人看得懂这个函数要怎麽用 所以我把重点都用红色标明 下面再来举个例子,应该就会比较好懂: unsigned long ThreadID; CreateThread(NULL, 0, (LPTHREAD_START_ROUTIME)Func, NULL, 0, &ThreadID); 这样就可以建立一个Thread了 但是如果有详细看的话,应该会注意到CreateThread有回传值 型态是HANDLE,所以最好宣告一个HANDLE去承接他 尤其是你的Thread若是执行一个Infinite Loop的时候,一定要这样做 否则你的Main Thread一旦提早结束,就没人管你的Thread了 至於要怎麽管理Thread,这个就会牵扯到前面的回传值 因为管理Thread,除了他没有别的办法 有开始,必然有结束 所有有CreateThread,必然也有ExitThread 那ExitThread就没什麽困难了 在Thread结束的时候,呼叫ExitThread就可以完整结束Thread 以下是ExitThread的函数: ExitThread(DWORD deExitCode); 他只有一个参数,就是把你刚刚的ThreadID丢进去给他就可以了 至於管理,就和下一篇的Event一起讲好了 下篇见。 -- 邮差又来按阴阳了 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.118.39.226
1F:→ tuzr:哈哈哈哈! 我前两个月都在被Win32API荼毒阿! e04... 06/07 13:39
2F:→ godman362:干....换我了说 06/07 14:38
3F:→ godman362:最近好忙~"~ 下篇可能要等很久了.... 06/10 22:20







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP