上面的说的对,就是采用waitforsingleobject来处理。因为在线程的execute里面,我们通常使用while not terminated这个循环语句,而在循环语句内部当收到这个事件的时候,就跳出循环,这样就结束了execute了。这和你设置freeonterminate为true没有关系,设置freeonterminate为true主要是为了在关闭线程的时候,不用手动去释放你动态创建的那些对象。如果不设置freeonterminate为true,那么你还必须继承destroy,在destroy里面手动释放你线程里面所创建的对象。推荐使用freeonterminate设置为true。
btw:对于多线程里面动态创建的对象,很多有经验的人建议在execute函数里面创建,然后接着在execute结束的之前手动释放,这样就更安全可靠了。