Windows 线程可以用 挂起自己SuspendThread()
吗?
我可以从另一个人中唤醒它,但是,它可以打电话SuspendThread(GetCurrentThreadId())
吗?
Windows 线程可以用 挂起自己SuspendThread()
吗?
我可以从另一个人中唤醒它,但是,它可以打电话SuspendThread(GetCurrentThreadId())
吗?
似乎这是可能的,但稍作改动(请参阅此处讨论的 cygwin 邮件列表):
SuspendThread(GetCurrentThread());
我还发现 MSDN 说一个线程应该只暂停自己,但它并没有让我清楚。我引用(从这里,强调我的):
这个函数主要是为调试器设计的。它不打算用于线程同步。如果调用线程试图获取挂起线程拥有的同步对象,则在拥有同步对象(例如互斥锁或临界区)的线程上调用 SuspendThread 可能会导致死锁。为避免这种情况,应用程序中不是调试器的线程应向其他线程发出信号以挂起自身。目标线程必须设计为监视此信号并做出适当的响应。
是的,您可以SuspendThread
在当前线程上使用。很好地阅读了这个主题。