首页
社区
课程
招聘
[旧帖] [求助]罗云斌win32多线程的一个例子 0.00雪花
发表于: 2012-11-11 00:15 1283

[旧帖] [求助]罗云斌win32多线程的一个例子 0.00雪花

2012-11-11 00:15
1283
.if        ax == IDOK
                                                        .if        dwOption & F_COUNTING
                                                                invoke        SetEvent,hEvent
                                                                or                dwOption,F_STOP
                                                        .else
                                                                invoke        CreateThread,NULL,0,offset _Counter,NULL,\                                                                                                NULL,addr @dwThreadID     ;标记1

                                                                invoke        CloseHandle,eax                     ;标记2                                                                                                                        .endif

首先CreateThread是创建一个线程,成功则返回线程句柄保存在eax里面,紧接着CloseHandle这个函数关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等。那意思就是关闭刚建立好的线程?测试的时候当这段代码运行过后,线程是一直保持运行状态的。我不懂白老罗的用意,是我菜.我注释了invoke        CloseHandle,eax编译运行,看起来还是一样。求大神给点透一下.

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 154
活跃值: (91)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
2
一般下面不需要对这个Thread进行操作的话,把Handle关闭是正常的。。。没必要浪费一个Object的资源,而且关闭了又不会咋样。。。
2012-11-11 00:17
0
雪    币: 11
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
CreateThread会创建一个线程内核对象(用来管理线程的)和一个线程栈(就是真正运行你让它执行的命令的线程),而线程运行起来后,你不需要主线程再对其进行操作,所以一般就先关闭线程内核对象了(但是线程还在执行),你也可以不关闭,等线程运行完成后,你再CloseHandle,否则会造成内存泄漏。
2012-11-11 20:58
0
游客
登录 | 注册 方可回帖
返回
//