sdk casablanca, webrequest Reihnfolge beachten?



  • Hallo Experten,

    ich hab da mal eine Frage. Ein Simples Beispiel, ein Programm soll Restful-Request in einem separaten Task ausführen. Das geht auch sehr wunderschön mit dem Beispiel von MSDN:

    #include <http_client.h>
    #include <filestream.h>
    #include <iostream>
    #include <sstream>
    
    using namespace web::http;
    using namespace web::http::client;
    
    pplx::task<void> HTTPStreamingAsync(int param)
    {
        std::wstring url = "https://api.irgendwo.com/id=" << param;
        http_client client(url);
    
        // Make the request and asynchronously process the response.
        return client.request(methods::GET).then([](http_response response)
        {
         // Mach hier irgend etwas mit dem zurückgegebenen Informationen
        });
    }
    
    // Im anderem Program rufe ich dann ja einfach nur HTTPStreamingAsync() auf (ohne .wait())
    HTTPStreamingAsync();
    

    Nun ist es aber so, das ich mehrere Request an den Server sende. Ich möchte aber, das diese Requests nach dem FIFO Prinzip abgearbeitet werden ohne das Hauptprogramm zu blockieren.

    void main() {
    
    // Das soll hier nicht blocken
    HTTPStreamingAsync(4);
    HTTPStreamingAsync(2);
    HTTPStreamingAsync(8);
    
    }
    

    Gibt es da eine Möglichkeit in pplx von hause aus?



  • Kannst du das then nicht auch dort benutzen?



  • Leider nein, da HTTPStreamingAsync von verschiedenen stellen aus aufgerufen wird. Ich glaube das ich mich auch etwas ungenau ausgedrückt habe, ich möchte das wenn ich HTTPStreamingAsync mehrfach aufrufe, er mit jedem request wartet bis der vorherige wirklich fertig ist. Ohne dabei das Program/Funktion welche HTTPStreamingAsync aufruft zu blockieren.


Anmelden zum Antworten