Entwickler-Ecke
Sonstiges (.NET) - Threads und Streams
mannyk - Di 25.05.10 13:42
Titel: Threads und Streams
Hallo,
ich habe einen Thread, der gewisse Berechnungen in einer Endlosschleife durchführt.
Nun möchte ich, dass nach jeder Berechnung das Ergebnis abgefragt werden kann.
Kann ich dies mit Streams machen oder gibt es eine bessere Möglichkeit?
Kha - Di 25.05.10 14:28
Ich glaube, du hast eine etwas falsche Vorstellung von Streams :gruebel: .
Bezieht sich "abgefragt" auf die GUI? Dann schau dir einmal den BackgroundWorker an, der übernimmt bereits die Synchronisierung zwischen UI- und Nebenthread. Oder gleich Control.Invoke, was auch nicht umständlicher ist, aber man sollte schon einmal etwas von Delegates gehört haben.
mannyk - Di 25.05.10 15:26
Hallo,
nein, es geht nicht um eine GUI.
Es gibt einfach einen Thread, der immer läuft und der bestimmte Werte generiert. Diese generierten Werte möchte ich mit einem anderen Programm lesen. Also braucht der Thread irgendeine Kommunikationsanbindung.
Ich habe dies jetzt mit StringWriter/StringReader und einem StringBuilder realisiert. Keine Ahung ob das elegant ist, aber funktionieren tut es :)
Lg
mannyk - Di 25.05.10 21:51
Nein, nein. Es handelt sich ganz sicher um Threads. ^^
Ich habe den einen Thread als BackgroundWorker implementiert. Und der Worker soll eben eine Connection zu demjenigen Thread haben, der diesen gestartet hat.
Ich nehme an, dass sich "ReportProgress()" dafür auch eignen könnte. Ich fand es dennoch nicht so elegant, da mein Thread ja immer läuft und keinen prozentmäßigen Fortschritt übermittelt.
Lg
Kha - Mi 26.05.10 00:37
mannyk hat folgendes geschrieben : |
Nein, nein. Es handelt sich ganz sicher um Threads. ^^ |
Aha. Und warum schreibst du dann
mannyk hat folgendes geschrieben: |
606688)][...]möchte ich mit einem anderen Programm lesen. |
:?:
mannyk hat folgendes geschrieben : |
nein, es geht nicht um eine GUI. |
Wofür ist dann der zweite Thread zuständig?
mannyk - Mi 26.05.10 13:58
Sorry, das mit dem "Programm" war doch sehr missverständlich.
Der 1. Thread ist der eigentliche Einstiegspunkt, sprich die die Main-Methode.
Der 2. Thread ist derjenige Thread, den ich explizit instanziere und welcher die Berechnungen ausführt.
Kha - Mi 26.05.10 14:13
mannyk hat folgendes geschrieben : |
Der 1. Thread ist der eigentliche Einstiegspunkt, sprich die die Main-Methode. |
Und, wofür ist er zuständig? Wenn es keine GUI ist, was dann, eine Konsole? Warum muss das Ergebnis von diesem Thread aus abgefragt werden?
Wie die Synchronisierung erfolgen muss, hängt letztendlich ganz von deinen Daten ab. Aber ab .NET 4 könnten dir Klassen wie
BlockingCollection, die für solche Producer-Consumer-Szenarien bestimmt sind, sicher weiterhelfen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!