关于CreateThread使用的小问题..

嬴政爱天下 2012-08-09 09:18:46
关于CreateThread使用的小问题

我HOOK了 D3d里的一个函数实现了屏幕的截图功能,但是由于生成图片的效率是非常缓慢的..所以的话,我在hook的函数里
创建了一个线程,在线程中去实现,屏幕图片的截获与生成,但是由于一般线程中使用while 死循环的话,D3D模块便会要不了
多久会崩溃,所以的话,或许需要频繁地使用

if (lpdirect)
{
::CloseHandle(::CreateThread(NULL,NULL,ThreadScreenShotProc,NULL,NULL,NULL));
blThread = false;
}

这样的语句去创建线程,但不知道过分频繁的创建线程,会对游戏本身产生影响吗?

这是我想问的,求各位高手给指明一下。

...全文
122 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
LiuYinChina 2012-08-10
  • 打赏
  • 举报
回复
http://download.csdn.net/detail/RobertBaker/2801344
zhanshen2891 2012-08-10
  • 打赏
  • 举报
回复
看有多频繁呗,如果几帧的时间就创建一个,甚至一帧一个那当然受不了,如果是隔个1分钟也没什么。

另外,你也可以就创建一个固定的线程在那,然后需要用它的时候给它发消息,这样就避免了频繁创建。

如果同时可能会有多个这样的线程也可以考虑用线程池。
fronz 2012-08-09
  • 打赏
  • 举报
回复
合理安排线程,如果线程中的while里只是简单的几段代码,这种频繁的调用是很失败的线程结构设计。
傻X 2012-08-09
  • 打赏
  • 举报
回复
当然有影响啦,而且你线程一直崩溃,如果牵涉到资源的话,可能让进程都玩完。

用个恶心的方法
while里面加Sleep(1)保证你线程不崩溃啊。方法是土。

另外,如果你线程本身工作量就很大的话,这个也是帮不上忙的。所以还要人为Wait
Gloveing 2012-08-09
  • 打赏
  • 举报
回复
过分频繁的创建线程,开销肯定会比较大,对进程有影响的。。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧