Ich habe versucht, Daten aus der Twitter-Stream-API mit C# zu lesen, und da die API manchmal keine Daten zurückgibt, suche ich nach einer nahezu echtzeitfähigen Antwort. Ich habe gezögert, eine Pufferlänge von mehr als 1 Byte auf dem Lesegerät zu verwenden, falls der Datenstrom für die nächsten ein oder zwei Tage keine Daten mehr liefert.Einen HTTP-Stream konsumieren, ohne jeweils ein Byte zu lesen
Ich habe mit der folgenden Zeile:
input.BeginRead(buffer, 0, buffer.Length, InputReadComplete, null);
//buffer = new byte[1]
Nun, da ich plane, um die Anwendung zu vergrößern, glaube ich eine Größe von 1 in einer Menge von CPU-Auslastung führen wird, und will diese Zahl erhöhen , aber ich möchte immer noch nicht, dass der Stream blockiert. Ist es möglich, den Stream zurückzugeben, wenn in den nächsten 5 Sekunden oder ähnlichem keine Bytes mehr gelesen werden?
Ich kann nicht immer öffnen und schließen Sie die Verbindung wegen Twitter-Richtlinien. Können Sie ein Beispiel geben, wie ich den asynchronen Rückruf-Timer verwenden könnte, um den Lesevorgang vorzeitig zu beenden? – HenryZhang
@huadianz: Ein grobes Beispiel hinzugefügt, um Ihnen einen Startpunkt zu geben. –
Gibt der Read irgendwelche Daten im Puffer zurück, oder sind diese Daten verloren? – HenryZhang