DisconnectedContext wegen Richtextbox

19/03/2010 - 21:34 von Dr. M. Dietrich | Report spam
Hallo,

habe follgendes Problem: eine Applikation öfnet ein oder mehrere TCP Ports
und gibt alles was sie empfàngt in einer RichtextBox aus. Wenn sich die
Anzahl der empfangenen Daten in Rahmen hàllt dann passiert nichts schlimmes
und alles geht seinen Gang. Wenn ich die Applikation mit einem Testprogramm
mit Daten floode, dann làufts am Anfang auch ganz normal, jedoch wird die
Anzeige der RichTextbox immer lahmer und irgendwann kommt:

DisconnectedContext wurde erkannt.
Message: Der Kontext ""0x1a4178"" wurde getrennt. Die Schnittstellen werden
aus dem aktuellen Kontext (Kontext 0x1a4008) freigegeben. Dies kann
Datenbeschàdigung oder -verlust zur Folge haben. Stellen Sie sicher, dass
alle Kontexte/Apartments beibehalten werden, bis die Anwendung alle
RuntimeCallableWrappers, die in ihnen vorhandene COM-Komponenten darstellen,
vollstàndig verarbeitet hat, um dieses Problem zu vermeiden.

Da die TCPportlistener als Backgroundworker laufen und die Daten in einer
SQlite DB puffern funktioniert alles ohne die Ausgabe in in der Richtextbox
ohne Probleme. Die Ausgabe làuft in einem Thread wo die auszugebenden Daten
in einer Queue gepuffert werden. Es scheint nun wirklich so zu sein, dass
die RichtextBox nicht mit der Flut an Daten fertig wird.
Das alles ist erstmal kein Problem da im Produktivbetrieb nie so viele Daten
angeliefert werden wie ich simuliere. Trotzdem würde es mich interessieren,
ob man die Richtextbox irgendwie effizienter oder schneller gestallten kann.
Achso: .net2 Framework, VS 2005

Danke!
 

Lesen sie die antworten

#1 Peter Fleischer
20/03/2010 - 06:29 | Warnen spam
"Dr. M. Dietrich" schrieb im Newsbeitrag
news:
...
Da die TCPportlistener als Backgroundworker laufen und die Daten in einer
SQlite DB puffern funktioniert alles ohne die Ausgabe in in der
Richtextbox ohne Probleme. Die Ausgabe làuft in einem Thread wo die
auszugebenden Daten in einer Queue gepuffert werden. Es scheint nun
wirklich so zu sein, dass die RichtextBox nicht mit der Flut an Daten
fertig wird.
Das alles ist erstmal kein Problem da im Produktivbetrieb nie so viele
Daten angeliefert werden wie ich simuliere. Trotzdem würde es mich
interessieren, ob man die Richtextbox irgendwie effizienter oder schneller
gestallten kann.
Achso: .net2 Framework, VS 2005



Hallo Dr.,
da nach der Schilderung der TCP-Verkehr und die UI in separaten threads
laufen, vermute ich, dass die CPU-leistung nicht reicht, um alle aufgaben
rechtzeitig auszuführen und dabei vermutlich der Thread für den TCP-Verkehr
eine unzureichende Prioritàt hat.

Die RTFBox ist die denkbar ungünstigste Variante. Besser ist es, ein
gebundenes Steuerelement zu nutzen wie beispielsweise ein Grid. Zusàtzlich
könnte man die Datenmenge in der Datenquelle begrenzen, indem zyklisch die
àltesten Eintràge entfernt werden.


Viele Gruesse

Peter

Ähnliche fragen