【发布时间】:2009-12-29 22:00:52
【问题描述】:
我已经使用 wininet 发送了一些同步 HTTP 请求。现在,我想更进一步,想异步请求一些内容。
目标是获得类似“反向代理”的东西。我发送了一个延迟响应的 HTTP 请求 - 只要有人想联系我。我的线程应该继续,就好像同时没有任何东西一样,并且一旦响应到达,就应该在这个线程中调用回调。请注意,我不想要处理回复的第二个线程(如果有必要,它应该只提供一些中断主线程以在那里调用回调的机制)!
更新: 也许,描述我想要的最好的方式是像 JavaScript 中的行为,你只有一个线程,但可以发送 AJAX 请求,然后导致在这个 main 中调用回调线程。
因为我想了解它是如何工作的,所以我不想要图书馆解决方案。有人知道一些很好的教程来解释我如何实现我想要的行为吗?
【问题讨论】:
-
如果你不想有第二个线程,你显然需要一些同步机制来检索调用请求的线程中的通知 - 没有神奇的方法来调用线程上的回调那是忙于其他事情。
-
那么,
InternetSetStatusCallback开始了一个新线程?你会提出什么样的同步机制? -
"WaitForSingleObject" 等似乎不合适,因为我不知道什么时候必须等待。我需要更多一些“推送”同步机制来中断主线程来调用我的回调
标签: c++ asynchronous wininet