在c ++的windows线程编程中,pthread_setcanceltype的替代方法是什么?
答案 0 :(得分:2)
Windows线程没有取消点,因此没有系统取消类型可供考虑。
因此,“取消”Windows上的线程意味着您(开发人员)需要提出一个策略来告诉线程退出。如果它是GUI线程,您可以发布WM_QUIT消息。如果它是非GUI线程,那么它实际上取决于线程正在做什么。您需要分析线程,看看代码是否可以明确检查是否需要继续运行,或退出。
如果你想避免这个问题并在Win32上获得pthreads投诉行为,那么可以使用pthreads-win32实现。
答案 1 :(得分:1)
您可以将事件用作同步对象。检查你的线程,不时检查事件的状态(WaitForSingleObject,零超时),如果有信号,则从线程的main函数返回。要从外部取消线程,只需设置事件。