我已经使用wininet发送一些同步的HTTP请求。现在,我想更进一步,想要异步请求一些内容。使用wininet的异步请求
目标是获得“反向代理”状的东西。我发送一个HTTP请求,延迟得到答复 - 只要有人想联系我。我的线程应该继续,因为在此期间没有任何内容,并且一旦响应到达,应该在此线程中调用回调。请注意,我不想要第二个处理回复的线程(如果有必要,它应该只提供一些中断主线程来调用回调的机制)!
更新:也许,来形容我想要的最好的办法就是像在JavaScript中,你只有一个线程,但可以发送AJAX请求,然后导致回调被调用这个主线程的行为。
因为我想了解它是如何工作的,所以我不需要库解决方案。有谁知道一些很好的教程,它解释了如何实现我想要的行为?
如果你不想有第二个线程,你显然需要一些同步机制来检索调用该请求的线程中的通知 - 没有什么神奇的方法来调用忙于其他线程的回调的东西。 – 2009-12-29 22:43:40
因此,InternetSetStatusCallback启动一个新的线程?你会建议什么同步机制? – Etan 2009-12-29 22:54:19
“WaitForSingleObject”等似乎不适合,因为我不知道什么时候需要等待。我需要更多的“推”式同步机制,它会中断主线程来调用我的回调 – Etan 2009-12-29 23:12:27