Nav*_*een 0 c windows multithreading
平台:windows 64位
语言 : c
我有一个创建 2 个线程的主程序
Thread1 正在执行 function1(在循环中打印名称 100 次,每次打印之间的睡眠时间为 10 分钟)。第一次打印后,休眠10分钟。
现在后台线程将挂起 Thread1 并更改其上下文以执行 function2(GetThreadContext、更改 Rip、SetThreadContext)并恢复 Thread1。
Function2 的逻辑是打印 1 到 100 之间的数字。
理想情况下,我希望 Thread1 在从后台线程恢复后立即运行 function2...因为 Rip 指向 function2 而不是 Sleep。
但是直到 10 分钟的睡眠时间过后,线程 1 才会运行......如果我在这里遗漏了什么,请告诉我。
我被困在这里好几天了......
据我所知,Suspend/ResumeThread 不保证任何正在运行的内核函数都会被中断。我建议使用SleepEx使您的睡眠进入警报等待状态,并使用QueueUserAPC告诉它调用您选择的函数,而不是使用线程上下文。
| 归档时间: |
|
| 查看次数: |
518 次 |
| 最近记录: |