请问各位,使用CreateThread创建工作者线程失败,得到空句柄的原因有哪些?我的程序不断调用了CreateThread创建线程,创建即运行,完成后即关闭句柄。一般情况下使用都是对的,但运行到一个无法预知的时候返回的句柄是空的,函数输入都没有错,有可能是程序中其它代码存在bug。期望各位高手能告诉失败的原因可能有哪些,列举出来,谢谢

解决方案 »

  1.   

    用AfxBeginThread创建,worker线程可以自己退出,就不用处理句柄了
      

  2.   

    你可以用GetLastError()来观察一下CreateThread()创建线程失败的原因!
    这样会更直观,要比猜准确!
      

  3.   

    有时要两个小时,有时要更多的小时才出错,我后来是使用GetLastError来察看错误,运行到现在几个小时了还没出现错误。请问有哪位有用过GetLastError获取CreateThread错误信息的,告诉我您所碰到的原因
      

  4.   

    有时要两个小时,有时要更多的小时才出错
    =============================================
    这个错误应该是你的程序中有内存泄漏!看看你在你的程序中new了什么东西,没有delete呀!
    或者你的线程在运行的时候没有正确结束,而导致线程内部的资源泄漏啊!
      

  5.   

    AfxBeginThread
    低成也是调用createthread
      

  6.   

    谢谢各位参与,内部异常造成,报的错误是内存不足,修改bug后运行正常