Frage zur richtigen Vorgehensweise -> XbpListbox

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14651
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Frage zur richtigen Vorgehensweise -> XbpListbox

Beitrag von Jan »

Hallo,

wie kann ich folgendes Problem am besten lösen?
  • In einer Schleife wird n mal ein neuer Thread gestartet.
  • In jedem Thread werden genau 2 Strings erstellt
  • Diese beiden Strings müssen direkt hintereinander als Einträge in die XbpListbox hinzugefügt werden

Problem: Da n Threads parallel laufen, können die Zeilen mehrere Threads nicht nacheinander, sondern gemischt geschrieben werden

Wie bekomme ich das hin, das die beiden zusammengehörigen Zeilen wirklich direkt hintereinander eingefügt werden?

Alternativ: Nicht beide Zeilen müssen mit dem Zeilencursor angesprungen werden können. Nur die erste. Es würde also schon genügen, wenn beide Strings zusammen eine Doppelzeile in der Listbox ergeben würden.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2934
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Frage zur richtigen Vorgehensweise -> XbpListbox

Beitrag von Wolfgang Ciriack »

Da würde ich lieber einen Array Eintrag von jedem Thread erzeugen lassen und dann ein zweizeiliges Browse zur Auswahl nehmen, da kann man dann sicher sein, dass die Strings zusammen gehören.
Viele Grüße
Wolfgang
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2824
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Frage zur richtigen Vorgehensweise -> XbpListbox

Beitrag von georg »

Hallo, Jan -


starte einen zusätzlichen Thread, der die Einträge in die ListBox aufnimmt. Jeder der von Dir erwähnten Threads schickt ein xbeP_User-Event an diesen Thread, und in dem Event wird ein Array mit den beiden Strings als Parameter übergeben.

Code: Alles auswählen

#DEFINE xbeP_User_Add_Entry     xbeP_User + 1
#DEFINE xbeP_User_Terminate     xbeP_User + 2
Der zusätzliche Thread arbeitet einen Event-Loop ab und reagiert nur auf ein "add" und ein "terminate" Event. Bei einem "add" Event schreibt er zwei Einträge in die ListBox und geht wieder in den Event-Loop. Dadurch stellst Du sicher, dass die beiden Strings eines Threads immer nacheinander in der ListBox landen.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Frage zur richtigen Vorgehensweise -> XbpListbox

Beitrag von UliTs »

Jan hat geschrieben:...
  • Diese beiden Strings müssen direkt hintereinander als Einträge in die XbpListbox hinzugefügt werden

...
Ich glaube, die Lösung ist genial einfach in xBase gelöst: :)

Erstelle eine SYNC METHOD, die beide Strings in die XbpListbox einfügt. :idea:
Durch das vorangestellte SYNC wird sichergestellt, dass die gesamte Methode ausgeführt wird, bevor zu einem anderen Thread gewechselt wird! Damit ist dann auch sichergestellt, dass beide Strangs direkt hintereinander in der XbpListbox eingefügt werden. :!:

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Antworten