Ich habe ein Stream-Objekt, das gelegentlich Daten in unvorhersehbaren Intervallen erhält. Nachrichten, die im Stream angezeigt werden, sind gut definiert und deklarieren die Größe ihrer Nutzlast im Voraus (die Größe ist eine 16-Bit-Ganzzahl, die in den ersten zwei Bytes jeder Nachricht enthalten ist).Kontinuierlich aus einem Stream lesen?
Ich hätte gerne eine StreamWatcher-Klasse, die erkennt, wenn der Stream Daten enthält. Sobald dies der Fall ist, möchte ich, dass ein Ereignis ausgelöst wird, damit eine abonnierte StreamProcessor-Instanz die neue Nachricht verarbeiten kann.
Kann dies mit C# -Ereignissen geschehen, ohne Threads direkt zu verwenden? Es scheint, als sollte es einfach sein, aber ich komme nicht richtig dazu, den richtigen Weg zu finden.
Er sagte ohne Verwendung von Threads !!! =) – Nayan
@Nayan: Asynchrony * ist * Multithreading. Dieses Problem ist inhärent eines von Multithreading. Ich vermute, was das OP bedeutet, dass er die Threads nicht explizit selbst erstellen will. –
@Nayan: Ich nehme an, das OP sucht nach einer Lösung, die nicht explizit einen neuen Thread erstellt und die blockierende Read-Methode verwendet, sondern für eine nicht blockierende asynchrone Lösung. Sie können keine Asynchronität mit keinen Threads haben. – dtb