如何暂停线程
How do you pause a thread?
你好,我试图暂停一个线程,但由于某种原因,它一直崩溃的游戏。这是我得到的
void Test(){
SuspendThread((PVOID)0x83593C24);//0x83593C24 The offset from the game
Scr_AddInt(1);
ResumeThread((PVOID)0x83593C24);
}
基本上我想暂停然后调用Add Int然后恢复它
您需要使用创建线程时返回的线程句柄。参见CreateThread
的文档;SuspendThread
;和ResumeThread
.
特别是CreateThread
的文档:
如果函数成功,返回值是新线程的句柄。如果函数失败,返回值为NULL。
的例子:
HANDLE thread_handle = CreateThread(/*args*/); // hold on to this value (and check for failure)
if (thread_handle == NULL)
{
// handle creation error
}
DWORD suspend_retval = SuspendThread(thread_handle);
if (suspend_retval == static_cast<DWORD>(-1))
{
// handle suspend error
}
Scr_AddInt(1); // original work
DWORD resume_retval = ResumeThread(thread_handle);
if (resume_retval == static_cast<DWORD>(-1))
{
// handle resume error
}
创建一个封装线程创建、挂起、恢复和终止的包装器类可能是值得的。这个类可以在内部执行所有的错误检查,并在适当的时候抛出异常。
相关文章:
- 从不同线程使用int64的不同字节安全吗
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 在C++中使用cURL和多线程
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 在cuda线程之间共享大量常量数据
- 如何将元素添加到数组的线程安全函数?
- 线程,如果else语句,都是错误的上下文切换后,会发生什么
- Lua/Luajit:暂停当前 Lua 线程
- 暂停和恢复多线程环境中另一个线程的线程C++技术建议
- 无法将线程与第三方库一起暂停
- 暂停和恢复线程的最佳解决方案是什么?
- POSIX:我如何暂停线程
- 超时时暂停线程
- mciSendString 不会暂停从线程播放的声音
- 在不使用自旋锁的情况下暂停空队列上的线程
- 频繁暂停和重启线程的最佳方法是什么?
- 如何暂停线程
- Std::async阻塞/暂停父线程
- 如何在Qt中取消线程暂停
- 在cpp中从父线程暂停和恢复线程