远行的帆

没有谁能阻挡我前行的步伐,风雨兼程,我也将义无反顾。

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2012年11月28日

摘要: 参考:http://blog.csdn.net/ooyyee11/article/details/7444610编写了一个播放音频的小程序,但有时无法重新播放,莫名其妙,后来发现调用接口失败,提示组件没有初始化。查了好久,才发下,CoInitlize是单线程的,而我播放声音是通过Socket通信线程接收外部命令,来控制播放。Coinitialize 参数为保留参数,必须为NULLCoInitialize是 Windows提供的API函数,用来告诉 Windows以单线程的方式创建com对象。应用程序调用com库函数(除CoGetMalloc和内存分配函数)之前必须初始化com库。 返回值S.. 阅读全文
posted @ 2012-11-28 16:51 远行的帆 阅读(316) 评论(0) 推荐(0)

摘要: 关于是否在创建线程后调用Closehandle一直困惑,今天查了查,才明白。CloseHandle关闭句柄并没有终止新创建的线程。只是表示对新创建的线程的引用不敢兴趣,系统会递减新线程的线程内核对象的使用计数。当使用计数为0的时候,系统就会释放线程内核对象。如果在主线程中没有关闭线程的句柄,始终都会保留一个引用。这样线程内核对象的引用计数就不会为0。即使新线程执行完毕,线程内核对象也不会被释放,只有等到进程终止的时候系统才会为残留的对象做清理工作。所以应该在不再使用线程的句柄的时候将其关闭掉,让线程的线程内核对象的引用计数减1Closingathreadhandledoesnottermin. 阅读全文
posted @ 2012-11-28 16:41 远行的帆 阅读(557) 评论(0) 推荐(0)