Threads / Parameter

28/09/2007 - 13:51 von Oliver Denter | Report spam
Also,

ich habe einen Thread (Windows.Forms-Anwendung) die eine Methode (aus einer geladenen *.dll) nennen
wir Sie "StartIrgendwas" aufruft . In dieser *.dll wird eine Methode aus der Forms-Anwendung
gerufen, welche eine Art Statusbalken, mit Abbrechen, Prozent usw. anzeigt, in dieser Funktion wird
ein DoEvents auferufen, daher reagiert die Anwendung auch immer schön.

"StarteIrgendwas" erzeugt nun ein Socket und lauscht auf einem Port. Damit das nicht meine
Forms-Anwendung blockiert brauche ich einen Thread.
Kein Problem Thread erstellt làuft auch.

Wenn ich in meinem StatusDialog aber auf Abbrechen klicke, dann will ich diese Information auch an
den Thread weitergeben, denn er wird nur beenden, wenn auf Abbrechen geklickt wurde.
Nun die Frage, wie bekomme ich diesen Parameter an den Thread übergeben?

OD
 

Lesen sie die antworten

#1 Armin Zingler
28/09/2007 - 14:12 | Warnen spam
"Oliver Denter" schrieb
Also,

ich habe einen Thread (Windows.Forms-Anwendung) die eine Methode
(aus einer geladenen *.dll) nennen wir Sie "StartIrgendwas" aufruft
. In dieser *.dll wird eine Methode aus der Forms-Anwendung gerufen,
welche eine Art Statusbalken, mit Abbrechen, Prozent usw. anzeigt,
in dieser Funktion wird ein DoEvents auferufen, daher reagiert die
Anwendung auch immer schön.



Ich verstehe nicht ganz: Wieviele Threads hast du? Zusàtzlich zu dem
standardmàßigen einen zweiten? Und der zweite aktualisiert etwas in der Form
und führt Doevents aus? Wurde denn die Form auch in dem zweiten Thread
erstellt? Wenn nein, ist das etwas seltsam, denn die Aktualisierung der Form
bzw des Statusbalkens etc muss in demselben Thread erfolgen, der die Form
erstellt hat.

"StarteIrgendwas" erzeugt nun ein Socket und lauscht auf einem Port.
Damit das nicht meine Forms-Anwendung blockiert brauche ich einen
Thread.



Noch einen?

Kein Problem Thread erstellt làuft auch.

Wenn ich in meinem StatusDialog



Welcher Statusdialog?

aber auf Abbrechen klicke, dann will
ich diese Information auch an den Thread weitergeben, denn er wird
nur beenden, wenn auf Abbrechen geklickt wurde.
Nun die Frage, wie bekomme ich diesen Parameter an den Thread
übergeben?



Im einfachsten Fall eine boolsche Cancel-Variable setzen, auf die der Thread
Zugriff hat. Im Thread die Variable möglichst zeitnah überprüfen und ggf den
Thread beenden (durch ordnungsgemàßes Exit der Prozeduren).


Armin

Ähnliche fragen