multi:AddHandle(handle)
Während einem Multi-Stack ein Easy-Handle hinzugefügt wird, können und müssen Sie easy:Perform() für diesen Handle nicht verwenden. Nachdem Sie den Easy-Handle wieder vom Multi-Stack entfernt haben, können Sie ihn problemlos wieder mit der Easy-Schnittstelle verwenden.
Wenn der Easy-Handle nicht für die Verwendung eines Share-
(#CURLOPT_SHARE
) oder globalen DNS-Caches (#CURLOPT_DNS_USE_GLOBAL_CACHE
)
festgelegt ist, wird der DNS-Cache verwendet, der von allen Easy-Handle
im Multi-Handle gemeinsam genutzt wird, wenn multi:AddHandle()
aufgerufen wird.
Wenn einem Multi-Handle eine einfache Schnittstelle hinzugefügt wird, wird ein gemeinsamer Verbindungs-Cache verwendet, der dem Multi-Handle gehört. Das Entfernen und Hinzufügen neuer Easy-Handle hat keine Auswirkungen auf den Pool von Verbindungen oder die Möglichkeit, Verbindungen erneut zu verwenden.
Wenn Sie #CURLMOPT_TIMERFUNCTION
im Multi-Handle gesetzt haben
(und Sie sollten wirklich, wenn Sie ereignisbasiert mit multi:SocketAction() und
so arbeiten), diesen Callback aus diesem Befehl heraus aufrufen, um
nach einer Timer-Aktualisierung zu fragen, sodass Ihre Hauptereignisschleife
die Aktivität auf diesem Handle zum Starten bringt.
Der Easy-Handle wird dem Multi-Handle hinzugefügt, bis Sie ihn mit multi:RemoveHandle() wieder entfernen - auch wenn eine Übertragung mit diesem speziellen Easy-Handle abgeschlossen ist.
Sie sollten den Easy-Handle aus dem Multi-Stack entfernen, bevor Sie zuerst den Easy-Handle und dann den Multi-Handle beenden: