text: c# — Konvertieren einer normalen HTTP-Post-Webanforderung mit Async und Await
  /Konvertieren einer normalen HTTP-Post-Webanforderung mit Async und Await
  Wie kann ich meinen traditionellen HttpWebRequest "POST" -Aufruf mit Async/Await-Muster konvertieren? Hier füge ich meinen aktuellen Code hinzu. Bitte helfen Sie mir, diesen Code mit Async/Await-Muster für Windows Phone 8 zu konvertieren.
  29.01.2013 Nitha Paul
  Da Windows Phone 8 anscheinend nicht die erforderlichen TAP-Methoden wie GetRequestStreamAsync bietet, müssen Sie zunächst einen kleinen Wrapper schreiben, um diese für sich selbst bereitzustellen:
  Beachten Sie die Verwendung von Task.Factory.FromAsync - dies ist die bevorzugte Methode, um einen await-freundlichen Wrapper für eine APM-basierte asynchrone API zu erhalten, wie die von WebRequest angebotenen. Dies ist weitaus effizienter als die Verwendung von Task.Factory.StartNew, wie von jemand anderem vorgeschlagen, da dies einen neuen Thread auslösen würde, während dies nicht erforderlich ist.
  Mit dieser Funktion können Sie Ihren Code jetzt auf die gleiche Weise wie auf Plattformen schreiben, auf denen diese Methoden im TAP-Stil verfügbar sind (z. B. Windows 8-Store-Apps, Desktop-Apps usw.):
  Beachten Sie die vier Zeilen mit // ASYNC: Kommentaren - diese zeigen, wo ich Änderungen vorgenommen habe. Ich habe Ihre Methode auf eine reduziert, da dies a) möglich ist, sobald Sie async und await verwenden, und b) viel einfacher ist, als Dinge mit Statusargumenten von einer Methode zur nächsten zu übergeben.
  Beachten Sie, dass beim zweiten und vierten Vorgang einige Dinge, die Sie zuvor synchron ausgeführt haben, tatsächlich asynchronisiert werden: Schreiben von Daten in den Anforderungsdatenstrom und Lesen von Daten aus dem Antwortdatenstrom. Für eine kleine Anfrage spielt dies wahrscheinlich keine Rolle, aber wenn große Datenmengen übertragen werden, kann ein synchroner Aufruf von Write oder ReadToEnd blockiert werden. Obwohl Windows Phone 8 die TAP-Methoden für WebRequest zu fehlen scheint, bietet es sie zum Glück für Stream und StreamReader an, sodass keine Erweiterungsmethoden geschrieben werden müssen.
  05.02.2013 Ian Griffiths
  Ich bin neu in der Community und hier ist mein erster Beitrag. In diesem Fall können Sie jeden Typ mit einer generischen Task zurückgeben. Das hat in der Vergangenheit für mich gut funktioniert.