(重要问题)专家们请帮忙解决一个正常杀死线程的问题!
各位专家好,这里有一个问题又要求教大家,请各位不吝赐教:
我写了个程序,为了该程序能更好的实现多线程功能,防止一些函数多线程运行时出现问题:
(1)我采用_beginthreadex()这个运行时函数来代替CreateThread()来创建多线程,因为_beginthreadex函数不但做了CreateThread做的全部功能,而且在多线程稳定性方面有明显的长处 !
(2)为了防止程序异常死掉,当我创建了一个线程的时候,我采用WaitForSingleObject函数来等待该线程运行一定的时间,如果到了规定的时间线程还没运行完,我就采用函数杀死这个没完成的线程,
那么现在的问题是:(1)当时间到了后线程却没执行完,我杀死这个线程,我用的是TerminateThread()函数,(不知道有没有和_beginthreadex()函数正好对应的终止线程的运行时函数而不是TerminateThread()函数)?
(2)当线程在规定的时间内没有执行完的话,我用终止线程函数来把他杀死,这样带来的问题是:如果线程中用到了某些资源的话,强行把线程杀死,很有可能存在内存泄露或者资源没有全部回收甚至是整个应用程序死掉,不知道各位专家对于我说的这个问题有什么好点的建议能确保程序稳定运行并且资源能正确回收,请指点,谢谢大家!
2000.8.10