Idexe Geschrieben 26. Februar 2005 Teilen Geschrieben 26. Februar 2005 Hallo, ich habe einen thread der mir Zeichen von einer Schnittstelle liest. Sobald ein 'Object' fertig gelesen führt es zu einem update der Oberfläche. Da das Zeichnen im Form relativ lange dauert soll das nicht im Workerthread passieren. Wie kann mein Form 'benachritigen', dass es was neues zum Zeichnen gibt. Möchte keinen Timer verwenden, der immer nachuckt. Bei MFC gab konnte man sich eine eigene Windowsnachricht erstellen und die an das Fenster schicken. Gibt es ein ähnliches Konzept in c# ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LordK Geschrieben 1. März 2005 Teilen Geschrieben 1. März 2005 Hm entweder stell ich mir das zu einfach vor, oder ich erkenn das Problem nicht so wirklich. Warum machst in einem Form nicht einfach eine Funktion, die das Zeichnen auslößt und rufst diese vom Workthread aus auf, wenn dieser mit seiner Verarbeitung durch ist? Gruß LordK Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Idexe Geschrieben 1. März 2005 Autor Teilen Geschrieben 1. März 2005 Der Workerthread liefert ständig Daten. Das heißt er ist nie fertig. Wenn ich die 'Zeichnen' funktion aus dem Thread heraus aufrufe gehen mir eventuell Daten ,die der WorkerThread sammelt verloren, weil er mit Zeichnen beschäftigt ist. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LordK Geschrieben 1. März 2005 Teilen Geschrieben 1. März 2005 ich nehme mal an, der Workthread sammelt die Daten in einer Schleife. Und immer wenn er ein 'object' fertig hat, muss ja irgendwie gekennzeichnet sein, dass etwas fertig ist und dann muss er einfach einen zweiten Thread anstoßen, der Zeichnet. Der arbeitet dann ja unabhängig vom Workthread. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Idexe Geschrieben 2. März 2005 Autor Teilen Geschrieben 2. März 2005 Das würde mein Problem eigentlich lösen... Frage mich trotzdem noch ob es in den .NET forms keine Möglichkeit gibt einen benutzerdefinierten event zu erzeugen, der dann im 'Form'-thread bearbeitet wird. Habs schon mit event ... versucht aber dann funktioniert das ganze nur wie eine Callbackfunktion. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Argbeil Geschrieben 4. März 2005 Teilen Geschrieben 4. März 2005 Doch, das geht. Guck dir mal das Client-Observer Patern an. Im Prinzip erstellst du ein Event, lässt deine Gui das Event abonieren und startest dann den Worker als Thread. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
HuDeanY Geschrieben 7. März 2005 Teilen Geschrieben 7. März 2005 Es gibt da eine rercht einfach zu Nutzende Klasse "ManualResetEvent" mit der kannst da richtig viel schindluder betreiben und in jeweiligen Tread auf das setzten des Events durch nen anderen Thread warten. Eine andere möglichkeit die dich aber weiter bringen würde ist die Anwendung eines "Delegate". Der Ruft unabhängig vom erzeugenden Thread eine Methode in einem anderen auf. Für eine genaue Beschreibung dieser Methodik schaust aber am besten in MSDN nach oder fragst mich nochmal. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.