我已经从libcurl主页上读到了一些例子。当通过curl_multi_perform下载时,它总是使用循环监控多句柄:
curl_multi_add_handle(multi_handle, easy_handle);
do {
curl_multi_wait(…);
curl_multi_perform(multi_handle, &still_running);
} while (still_running);
让我在
部分阻止我希望libcurl会在easy_handle的任何人下载完成后进行回调
例如:
答案 0 :(得分:1)
通常在循环中调用 curl_multi_perform 来完成所有与卷曲相关的任务,例如http事务。
您放置代码的方式,您将无法实现使用libcurl的异步方式。有办法实现它。
在典型的实现中,您将拥有主循环,您可能正在处理任务数量。例如
do
{
execute task1
execute task2
.............
execute taskn
}
while(condition)
在该循环中,您可以调用 curl_multi_perform 。
所以主循环看起来像
do
{
execute task1
execute task2
.............
execute taskn
curl_multi_perform(curlm, &count);
}
while(condition)
这样你就可以完成所有任务,并且不时调用curl_multi_perform,你将实现使用libcurl的异步方式。
请检查文档,根据一些返回值,您可以避免调用curl_multi_perform(我记得以前读过它)。