在c ++的windows线程编程中,pthread_setcanceltype的替代方法是什么?

时间:2010-05-14 14:47:38

标签: c++ windows multithreading pthreads

在c ++的windows线程编程中,pthread_setcanceltype的替代方法是什么?

2 个答案:

答案 0 :(得分:2)

Windows线程没有取消点,因此没有系统取消类型可供考虑。

因此,“取消”Windows上的线程意味着您(开发人员)需要提出一个策略来告诉线程退出。如果它是GUI线程,您可以发布WM_QUIT消息。如果它是非GUI线程,那么它实际上取决于线程正在做什么。您需要分析线程,看看代码是否可以明确检查是否需要继续运行,或退出。

如果你想避免这个问题并在Win32上获得pthreads投诉行为,那么可以使用pthreads-win32实现。

答案 1 :(得分:1)

您可以将事件用作同步对象。检查你的线程,不时检查事件的状态(WaitForSingleObject,零超时),如果有信号,则从线程的main函数返回。要从外部取消线程,只需设置事件。