|
|
1
4
这可能是这样一种情况:一个人在不重新考虑大局的情况下,自己努力形成一个非常具体的想法。没有一种单一的机制可以让单个线程在其当前上下文中停止执行,去做其他事情,并在它脱离的那一行恢复执行。如果可能的话,它将首先破坏拥有线程的目的。正如您已经提到的,在不后退和重新考虑整体架构的情况下,您最优雅的选择似乎是使用另一个线程来等待HTTP响应,让它将主线程挂起在一个安全位置,自行处理响应,然后恢复主线程。在这种情况下,您可能会重新考虑线程本地存储是否仍然有意义,或者范围稍高一点的存储是否更合适,因为每次中断主线程时,复制它可能会浪费大量的周期。 |
|
2
2
QueueUserAPC 做但是使用它进行这种同步的想法让我有点不舒服。如果您不知道主线程处于 安全的 你可能不应该打断它。
|
|
|
3
1
我可能不明白这个问题,但是 CreateSemaphore 和 WaitForSingleObject
|
|
4
0
看起来答案应该可以从微软的网站上找到 MSDN Synchronizing Execution of Multiple Threads |
|
|
5
0
|
|
|
6
0
一种确定的方法是定期检查是否收到HTTP响应。
|
|
|
7
0
在这种情况下,我会做几件事。首先也是最重要的是,我将重新构造主线程正在执行的工作,以便将其分解为尽可能小的部分。这为你提供了一系列安全的地方来打破执行。然后您需要创建一个工作队列,可能使用microsoft slist。slist将使您能够让一个线程添加,而另一个线程读取,而无需锁定。
|
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |